hdu5410
2015-08-21 17:10
274 查看
关于完全背包,除了转化成二进制外,还有另一种比较朴素的时间优化方法,已在代码中标出。对于此,我只能说,坑队友,没商量,因为不会,所以超时了,还信誓旦旦的对队友说,用这种方法不行!!!
,所以我们成功的爆零了!还有wr竟然是数组开小了,看来超的不太多,是不会爆re的。
参考来源:http://blog.csdn.net/yeguxin/article/details/47813431
(咸食,夏天摊好后,可以切成条,加醋和蒜拌着吃,非常好吃)
2015.8.29:
对于完全背包的这种优化,感觉还是需要在消化消化,因为虽然能理解,但是感觉证明过程还不是很严谨。
,所以我们成功的爆零了!还有wr竟然是数组开小了,看来超的不太多,是不会爆re的。
参考来源:http://blog.csdn.net/yeguxin/article/details/47813431
(咸食,夏天摊好后,可以切成条,加醋和蒜拌着吃,非常好吃)
2015.8.29:
对于完全背包的这种优化,感觉还是需要在消化消化,因为虽然能理解,但是感觉证明过程还不是很严谨。
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; #define N 1100 #define M 2100 int dp[M]; int main(){ int t; int n; int m; int wi,ai,bi; scanf("%d",&t); while(t--){ scanf("%d%d",&m,&n); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ scanf("%d%d%d",&wi,&ai,&bi); for(int j=m;j>=wi;j--){ if(dp[j]<dp[j-wi]+ai+bi){ dp[j]=dp[j-wi]+ai+bi; } } for(int j=wi;j<=m;j++){//优化,并且在此处不会出现选了第i中礼物,却没加上bi的 if(dp[j]<dp[j-wi]+ai){ dp[j]=dp[j-wi]+ai; } } } printf("%d\n",dp[m]); } }
相关文章推荐
- exynos4412电路OrCAD问题
- jdbc ,FetchSize
- 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
- 关于startUML中各种连线这间的关系
- 旋转数组的最小数字
- 线程的同步互斥之事件对象(Event)
- 单一控制器实现员工信息管理
- qt编译mysql驱动插件
- Android 自动注释,导入模板文件
- Linux 自学命令
- 产品新人应该学会的几点坚持
- 编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过
- 树状数组详细分析
- Delphi_OD_代码_调试_Delphi反调试技术(以OD为例附核心原代码)
- 对比两个实体类属性值的差异
- 探索static——不需要能够使用该类实例?
- 直接插入排序
- AndroidManifest.xml
- tcpkill清除异常tcp连接
- Open vSwitch安装及配置