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

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

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

    userId_undefined

    THUNDER

    出道萌新荣耀黄金
    24阅读
    0回复
    0点赞
  • A30661.完全背包 题解

    OK,一道完全背包的题目,套公式就行——

    userId_undefined

    Sleepy~yo

    21阅读
    0回复
    0点赞
  • dai码

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

    userId_undefined

    万知远2013

    倔强青铜
    10阅读
    0回复
    0点赞
  • 可以参考一下

    #include<bits/stdc++.h> using namespace std; #define MAX 1001 int n,weight; int w[MAX],v[MAX]; int dp[MAX][MAX]; int f(int n, int weight){ if(n==1){ if(weight>=w[1])return v[1](weight/w[1]); else return 0; } if(dp[n][weight]>0) return dp[n][weight]; if(weight<w[n]) dp[n][weight]=f(n-1,weight); else{ dp[n][weight]=f(n-1,weight); for(int i=1;iw[n]<=weight;i++) dp[n][weight]=max(dp[n][weight],f(n-1,weight-i*w[n])+v[n]*i); } return dp[n][weight]; }int main(){ scanf("%d%d",&weight,&n); for(int i=1;i<=n;i++){ scanf("%d%d",&w[i],&v[i]); } memset(dp,0,sizeof(dp)); printf("%d",f(n,weight)); return 0; }

    userId_undefined

    ༺ཌༀAC君 管理员~乔唐ༀད༻

    出道萌新I/O·IO入门者倔强青铜
    5阅读
    0回复
    0点赞
  • 简洁版

    #include<bits/stdc++.h> using namespace std; int n,m,f[201],w[31],c[31]; int main() { 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=0;j<=m;j++) if(j>=w[i]) f[j]=max(f[j],f[j-w[i]]+c[i]); cout<<f[m]<<endl; }

    userId_undefined

    波酱

    分支·分支解题者格式·格式排版员I/O·IO入门者
    3阅读
    0回复
    0点赞
首页