1221. 数字游戏 (01背包)
2012-03-16 00:04
162 查看
/*状态转移方程则是:dp[j]=max(dp[j],dp[j-1]+a[i]-b[i]*(j-1)) 理解为对于第i个数字,当要选取j个数字时,最优结果是: 不选取这个数字,从剩下的数字中再选取j个数字的最优结果; 或者是选取这个数字,从剩下的数字中再选取j-1个数字的最优结果。 以上两者的更优者就是最优解。如此进行下去,score[m]就是最终解。*/ #include<iostream> //0-1背包 #include<algorithm> using namespace std; struct node { int a,b; }ans[202]; bool cmp(const node& x,const node& y) { return x.b>y.b; } int n,m,dp[202]; int main() { cin>>n>>m; for(int i=0;i<n;++i) cin>>ans[i].a; for(int i=0;i<n;++i) cin>>ans[i].b; sort(ans,ans+n,cmp); for(int i=0;i<n;++i) //bi 递减 for(int j=m;j>0;--j) dp[j]=max(dp[j],dp[j-1]+ans[i].a-ans[i].b*(j-1)); //dp[j]表示 j 回合内能选中的ai最大总和 cout<<dp[m]<<endl; return 0; }
相关文章推荐
- Sicily 1221. 数字游戏
- Sicily 1221 数字游戏
- sicily 1221. 数字游戏
- Sicily1221:数字游戏(week 10)
- 第八周:( Sicily1221) 数字游戏(c++)
- Sicily 1221. 数字游戏
- 游戏中的数字字体选择
- ZJUT1002 数字游戏
- [BZOJ3404][Usaco2009 Open]Cow Digit Game又见数字游戏
- 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏
- 第四周项目3:猜数字游戏
- P1427 小鱼的数字游戏(#1 - 4)
- [bzoj3404] [Usaco2009 Open]Cow Digit Game又见数字游戏
- 数学练习二:互联网数字游戏
- 2003年分区联赛普级组之二 数字游戏_dp
- C语言 猜数字游戏
- uva 340 -----Master-Mind Hints(猜数字游戏的提示)
- 数字游戏(两个大神写得)
- 猜数字游戏程序
- codevs-1085 数字游戏