博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0-1背包之四
阅读量:4315 次
发布时间:2019-06-06

本文共 786 字,大约阅读时间需要 2 分钟。

//sicily 1221. 数字游戏 //m个回合里,每个回合在n个数中选择一个ai,然后剩下的数都减去bi,求选中的ai之和的最大值 //0-1背包,每个数的体积都为1,背包容量为 m //显然,如果选中的m个数已固定的话,擦去这m个数的顺序对结果有影响,很明显为最大化,应该先擦掉bi小的数, //所以事先要排好序,按bi从大到小排,靠后dp选中的数bi较小 #include
//0-1背包 #include
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
>ans[i].a; for(int i=0;i
>ans[i].b; sort(ans,ans+n,cmp); for(int i=0;i
0;--j) dp[j]=max(dp[j],dp[j-1]+ans[i].a-ans[i].b*(j-1)); //dp[j]表示 j 回合内能选中的ai最大总和 cout<
<

  

转载于:https://www.cnblogs.com/mjc467621163/archive/2011/08/22/2149120.html

你可能感兴趣的文章
用两个队列来模拟栈
查看>>
jQuery的无new构建
查看>>
Hibernate关联关系之双向1—n
查看>>
tomcat点击Tomcat7.0.exe闪退
查看>>
DOM和BOM
查看>>
Android开发:文本控件详解——EditText(一)基本属性
查看>>
脚本监控2个进程有进程死掉重启进程
查看>>
HashMap 源码分析
查看>>
开发日志三
查看>>
如何用Maven创建web项目(具体步骤)
查看>>
MetadataType来帮助entity framework自动生成的代码进行标注
查看>>
快速幂
查看>>
Java学习——读写txt文件
查看>>
查看apk函数
查看>>
python自然语言处理学习笔记1
查看>>
java插入排序
查看>>
Django doc summary (4)
查看>>
Object-C——内存管理
查看>>
解决for循环里面产生相同随机数的问题
查看>>
Java常量池详解之一道比较蛋疼的面试题
查看>>