2 条题解

  • 1
    @ 2023-8-22 21:27:41

    #include<bits/stdc++.h> using namespace std; int w[105],val[105]; int dp[105][1005]; int main(){ int t,m,res=-1; cin>>t>>m; for(int i=1;i<=m;i++){ cin>>w[i]>>val[i]; } for(int i=1;i<=m;i++) for(int j=t;j>=0;j--) { if(j>=w[i]){ dp[i][j]=max(dp[i-1][j-w[i]]+val[i],dp[i-1][j]); } else{ dp[i][j]=dp[i-1][j]; } } printf("%d",dp[m][t]); return 0; }

    • 0
      @ 2026-8-24 22:27:20

      #include<bits/stdc++.h> using namespace std; int n,m,ans=0; int a[36],b[36]; void work(int dep,int time,int value){ if(time>n)return; if(dep>m){ ans=max(ans,value); return; } work(dep+1,time+a[dep],value+b[dep]); work(dep+1,time,value); } 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; }

      • 1

      信息

      ID
      634
      时间
      1000ms
      内存
      128MiB
      难度
      2
      标签
      递交数
      67
      已通过
      52
      上传者