3 条题解

  • 1
    @ 2023-8-23 15:29:42

    #include<bits/stdc++.h> using namespace std; int w[1000],v[1000],f[50000]; int n,m; int main(){ cin>>m>>n; for(int i=1;i<=n;i++){ cin>>v[i]>>w[i]; w[i]*=v[i]; } for(int i=1;i<=n;i++){ for(int j=m;j>=v[i];j--){ if(j>=v[i]) f[j]=max(f[j],f[j-v[i]]+w[i]); } } cout<<f[m]<<endl; return 0; }

    • 0
      @ 2026-9-5 17:02:08

      #include<bits/stdc++.h> using namespace std; int n,m; int ans=0; int a[10006],b[10006]; void work(int dep,int v,int p){ if(v>n)return; if(dep>m){ ans=max(ans,p); return; } work(dep+1,v+a[dep],p+a[dep]*b[dep]); work(dep+1,v,p); } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>>a[i]>>b[i]; } work(1,0,0); cout<<ans<<endl; return 0; }

      • 0
        @ 2026-4-3 13:42:18

        #include<bits/stdc++.h> using namespace std; int w[1000],v[1000],f[50000]; int n,m; int main(){ cin>>m>>n; for(int i=1;i<=n;i++) { cin>>v[i]>>w[i]; w[i]*=v[i]; } for(int i=1;i<=n;i++) { for(int j=m;j>=v[i];j--) { if(j>=v[i]) f[j]=max(f[j],f[j-v[i]]+w[i]); } } cout<<f[m]<<endl; return 0; }

        • 1

        信息

        ID
        635
        时间
        1000ms
        内存
        128MiB
        难度
        2
        标签
        递交数
        80
        已通过
        65
        上传者