头像

luanxinhao




离线:4天前


最近来访(6)
用户头像
Warsaw
用户头像
用户头像
撒野_9

新鲜事 原文

蓝桥杯RP++


新鲜事 原文

RP++


新鲜事 原文

RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++RP++


新鲜事 原文

$蓝桥杯RP++$



luanxinhao
2个月前

老师讲这道题的时候夸我了,嘿嘿

#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int n,x;
vector<int>v;
int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>x;
        int j=lower_bound(v.begin(),v.end(),x)-v.begin();
        if(j<v.size())
            v[j]=x;
        else
            v.push_back(x);
    }
    cout<<v.size();
    return 0;
}



luanxinhao
2个月前

A了这道题,祝你们成功(doge)

#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
int a[1005],f[1005],ans,n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i],f[i]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            if(a[i]>a[j])
                f[i]=max(f[i],f[j]+1);
        }
    }
    for(int i=1;i<=n;i++)
        ans=max(ans,f[i]);
    cout<<ans;
}


活动打卡代码 AcWing 2. 01背包问题

luanxinhao
2个月前

A了这道题,祝你们成功(滑稽)(doge)

#include<iostream>
#include<cmath>
using namespace std;
int dp[1005],w[1005],v[1005],n,m;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>v[i]>>w[i];
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=0;j--)
        {
            if(j>=v[i])
                dp[j]=max(dp[j-v[i]]+w[i],dp[j]);
        }
    }
    cout<<dp[m];
}


活动打卡代码 AcWing 3. 完全背包问题

luanxinhao
2个月前
#include<iostream>
#include<cmath>
using namespace std;
int dp[1005][1005],n,m,v[1005],w[1005];
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>v[i]>>w[i];
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=m;j++)
        {
            dp[i][j]=dp[i-1][j];
            if(j>=v[i])
                dp[i][j]=max(dp[i][j],dp[i][j-v[i]]+w[i]);
        }
    }
    cout<<dp[n][m];
    return 0;
}


新鲜事 原文

luanxinhao
2个月前
打卡!算法基础课DP T1 ```cpp #include<iostream> #include<cmath> using namespace std; int dp[1005],v[1005],w[1005],n,m; int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>w[i]>>v[i]; for(int i=1;i<=n;i++) { for(int j=m;j>=0;j--) { if(j>=w[i]) dp[j]=max(dp[j-w[i]]+v[i],dp[j]); } } cout<<dp[m]; return 0; }