2 条题解

  • 1
    @ 2026-7-19 16:21:56

    去掉m-即可

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    const int INF=0x3f3f3f3f;
    int w[N],v[N],a[N],n,m;
    int main()
    {
    	cin >> m >> n;
    	for(int i=1;i<=n;i++)
    	{
            cin >> w[i];
        }
        for(int i=1;i<=n;i++)
    	{
            for(int j=m;j>=w[i];j--)
    		{
                a[j]=max(a[j],a[j-w[i]]+w[i]);
            }
        }
        cout << m-a[m];
        return 0;
    }
    
    • 0
      @ 2025-10-18 18:43:11
      #include<bits/stdc++.h>
      #define int long long
      using namespace std;
      int c,w,f[205][205],m,n,f2[55000];
      signed main(){
      	cin>>m>>n;
      	for(int i=1;i<=n;i++){
      		cin>>c;
      		w=c;
      		for(int j=c;j<=m;j++)
      				f2[j]=max(f2[j],f2[j-c]+w);
      	}
      	cout<<f2[m]; 
      } 
      
      
      • 1

      信息

      ID
      2433
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      100
      已通过
      25
      上传者