博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Happy Programming Contest
阅读量:4677 次
发布时间:2019-06-09

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

0-1背包,按照时间排序保证总时间最小。以后写if-else注意多continue,还有0-1背包不需要多加一维。

以后注意。

View Code
const int MM = 1111;#define debug puts("wrong")//typedef __int64 int64;int N,M;int dp[MM][4];struct Info{
int t,v;}g[MM];bool cmp(Info x,Info y) {
return x.t==y.t?x.v
=g[i].t;j--) { tmp=dp[j-g[i].t][0]+g[i].v; if(tmp>dp[j][0]) { dp[j][0]=tmp; dp[j][1]=dp[j-g[i].t][1]+1; dp[j][2]=dp[j-g[i].t][2]+j; continue; } else if(tmp==dp[j][0]) { tt=dp[j-g[i].t][1]+1; if(tt>dp[j][1]) { dp[j][1]=tt; dp[j][2]=dp[j-g[i].t][2]+j; continue; } else if(tt==dp[j][1]) { t1=dp[j-g[i].t][2]+j; dp[j][2]=f_min(t1,dp[j][2]); continue; } } // printf("%d %d %d %d %d\n",i,j,dp[j][0],dp[j][1],dp[j][2]); } } int a1=-1,a2=-1,a3=-1; for(i=0;i<=M;i++) { if(a1==-1||dp[i][0]>a1) { a1=dp[i][0], a2=dp[i][1], a3=dp[i][2]; continue; } if(dp[i][0]==a1) { if(a2==-1||a2
dp[i][2]) a3=dp[i][2]; } } } printf("%d %d %d\n",a1,a2,a3);}int main() { int ca; scanf("%d",&ca); while(ca--) get_data(),solve(); return 0;}

 

转载于:https://www.cnblogs.com/zhang1107/archive/2013/04/26/3044693.html

你可能感兴趣的文章
filter 过滤器(监听)
查看>>
Linux进程间通信---共享内存
查看>>
Computer Information
查看>>
交换机/路由器上的 S口 F口 E口
查看>>
P1298(矩阵切割)DP
查看>>
wzplayer for delphi demo截图
查看>>
团队第二周:SRS文档
查看>>
Zookeeper的安装与使用:
查看>>
密码策略限制最大与最小长度
查看>>
正则表达式模式
查看>>
使用iframe实现同域跨站提交数据
查看>>
Mouse点击之后,复制GridView控件的数据行
查看>>
ASP.NET开发,从二层至三层,至面向对象 (2)
查看>>
如何查看自己电脑支持OpenGL core版本
查看>>
页面元素定位 XPath 简介
查看>>
[转]loadrunner:系统的平均并发用户数和并发数峰值如何估算
查看>>
Linux下Tomcat重新启动
查看>>
HTML Table to Json
查看>>
Theano 学习笔记(一)
查看>>
1.7 节点进行排序显示
查看>>