acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • CTRL+C……CTRL+V

    userId_undefined

    虫大

    59阅读
    2回复
    2点赞
  • 题解

    #include<bits/stdc++.h> using namespace std; int dp[201][201],w[100],c[100]; int main(){ int m,n;//背包容量为m,有n件物品 cin>>m>>n; for(int i=1;i<=n;i++) cin>>w[i]>>c[i]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(j-w[i]>=0) dp[i][j]=max(dp[i-1][j-w[i]]+c[i],dp[i-1][j]); else dp[i][j]=dp[i-1][j];//当前最优解 } } cout<<dp[n][m]; return 0; }

    userId_undefined

    181****0362

    46阅读
    1回复
    2点赞
  • 题解

    #include<bits/stdc++.h> using namespace std; int w[40], v[40]; int dp[210][210]; int main() { int c, n; cin >> c >> n; for(int i = 1; i <= n; i++) { cin >> v[i] >> w[i]; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= c; j++) { if(j < v[i]) { dp[i][j]=dp[i - 1][j]; }else { dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - v[i]] + w[i]); } } } cout << dp[n][c] << endl; return 0; }

    userId_undefined

    我不想学C++!!!

    6阅读
    0回复
    0点赞
首页