2 条题解

  • 0
    @ 2025-10-5 15:40:39
    01背包
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int dp[25][20005];
    //自动初始化,只用一次
    int main()
    {
    	int n,t;
    	cin>>n>>t;
    	int zan,jia;
    	for(int i=1;i<=t;i++)
    	{
    		cin>>zan>>jia;
    		for(int j=0;j<=n;j++)
    		{
    			if(zan>j)
    			{
    				dp[i][j]=dp[i-1][j];
    			}
    			else
    			{
    				int a=dp[i-1][j];
    				int b=dp[i-1][j-zan]+jia;
    				dp[i][j]=max(a,b);
    			}
    		}
    	}
    	cout<<dp[t][n];
    	return 0;
    }
    

    信息

    ID
    224
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    321
    已通过
    42
    上传者