dp之完全背包poj2063
题意:求投资k年获得最大投资,每年都选最大利息的方案进行投资k年后就可以得到最多的人民币。 注意:每一年收到的利息都可以作为下一年的本金......其实从测试数据来看,是很好看出来的...... 思路:将每一年的“体积”加上利息就好,当然,数据太大,可以除以100减少时间和空间复杂度...... 反思:很想说,这些我都想到了,但是还是wa了两次,是因为数据溢出的原因......以前就遇到这样的原因,木有想到这次我注意了,但还是出问题了...... wa代码: #include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[500000],s[100][2];
int main()
{
int text;
scanf("%d",&text);
while(text--)
{
int n,year;
scanf("%d%d",&n,&year);
int h,m=n/100;
scanf("%d",&h);
for(int i=1;i<=h;i++)
{
scanf("%d%d",&s[i][0],&s[i][1]);
s[i][0]/=100;
}
memset(dp,0,sizeof(dp));
int sum=0;
for(int i=1;i<=year;i++)
{ for(int j=1;j<=h;j++)
{
for(int k=s[j][0];k<=m;k++)
if(dp[k]<dp[k-s[j][0]]+s[j][1])
dp[k]=dp[k-s[j][0]]+s[j][1];
}
sum+=dp[m];
m=m+dp[m]/100; //这里数据溢出,要是上一次的m==100,dp[m]==250,这一次的dp[m]==350,那么计算出来的m==105,但是实际应该为106
}
printf("%d\n",sum+n);
}
return 0;
} ac代码: #include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[600000],s[100][2];
int main()
{
int text;
scanf("%d",&text);
while(text--)
{
int n,year;
scanf("%d%d",&n,&year);
int h,m=n/100;
scanf("%d",&h);
for(int i=1;i<=h;i++)
{
scanf("%d%d",&s[i][0],&s[i][1]);
s[i][0]/=100;
}
memset(dp,0,sizeof(dp));
int sum=n;
for(int i=1;i<=year;i++)
{
m=sum/100;
for(int j=1;j<=h;j++)
{
for(int k=s[j][0];k<=m;k++)
if(dp[k]<dp[k-s[j][0]]+s[j][1])
dp[k]=dp[k-s[j][0]]+s[j][1];
}
sum+=dp[m]; //以后的代码要规范写,可以在前面处理了的值不要留在后面处理.......
}
printf("%d\n",sum);
}
return 0;
}
dp之完全背包poj2063的更多相关文章
- hdu1114 Piggy-Bank (DP基础 完全背包)
链接:Piggy-Bank 大意:已知一只猪存钱罐空的时候的重量.现在的重量,已知若干种钱的重量和价值,猪里面装着若干钱若干份,求猪中的钱的价值最小值. 题解: DP,完全背包. g[j]表示组成重量 ...
- 单调队列优化DP,多重背包
单调队列优化DP:http://www.cnblogs.com/ka200812/archive/2012/07/11/2585950.html 单调队列优化多重背包:http://blog.csdn ...
- Codevs1378选课[树形DP|两种做法(多叉转二叉|树形DP+分组背包)---(▼皿▼#)----^___^]
题目描述 Description 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了N(N<300)门的选修课程,每个学生可选课程的数量M是给定的.学生选修 ...
- POJ3211 Washing Clothes[DP 分解 01背包可行性]
Washing Clothes Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 9707 Accepted: 3114 ...
- HD1561The more, The Better(树形DP+有依赖背包)
The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- [HDOJ5543]Pick The Sticks(DP,01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5543 题意:往长为L的线段上覆盖线段,要求:要么这些线段都在L的线段上,要么有不超过自身长度一半的部分 ...
- zoj3623 Battle Ships ——完全背包?简单DP!|| 泛化背包
link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3623 看起来像完全背包,但是物品价值是变化的,所以很多人搞的很复 ...
- poj 2184 Cow Exhibition(dp之01背包变形)
Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - ...
- hdoj1010Starship Troopers (树dp,依赖背包)
称号:hdoj1010Starship Troopers 题意:有一个军队n个人要占据m个城市,每一个城市有cap的驻扎兵力和val的珠宝,并且这m个城市的占率先后具有依赖关系,军队的每一个人能够打败 ...
随机推荐
- Linux下解决 id_rsa 权限不够
问题 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVAT ...
- 利用kettle中的JS来完成ETL数据校验
最近参与了一个信托行业的BI项目,由于信托业务系统设计的问题,很多都是用户手工录入的数据,也有一些是需要分析的但是用户没有录入的数据,针对这样的数据质量,我们就要在ETL抽取的过程中来对数据流进行校验 ...
- 全民Scheme(2):来自星星的你
一门编程语言,假设不能对你思考编程的方式产生影响.就不值得去学习.-- Alan Perlis (define rember* (lambda (a list) (cond ...
- iOS 真机调试多台mac电脑共用一个证书
大致流程:在你的开发电脑上导出一个 p12文件,以及在 apple开发者中心下载一个profile文件,把这两个文件导出给你的mac开发友就行了 打开 mac 钥匙工具-----找到你的证书---- ...
- Unity3D 播放视频
http://blog.csdn.net/jbjwpzyl3611421/article/details/12780625 导入: 影片纹理是通过Apple QuickTime导入的(支持.mov, ...
- CentOS6.5搭建MySQL5.1主从复制
环境: mysql> select version(); +------------+ | version() | +------------+ | 5.1.73-log | +-------- ...
- ffmpeg Win8移植记(二)
接着上回说,http://www.cnblogs.com/zjjcy/p/3384517.html 上回移植了ffmpeg在ARM上面,只是纯C的代码,没有做汇编的优化.因为ffmpeg的ARM汇编是 ...
- EL函数库
一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ...
- linux内核——PAE(物理地址扩展)
引入PAE机制后,分页模式是怎样的呢? 首先,要搞明白几件事,2.6.11以上版本的linux内核中,存在4中页表(页全局目录,页上级目录,页中级目录,页表),这些页表结构是已经存在于硬盘中的,当进程 ...
- RedHat Enterprise Linux 6 配置Xmanager ,实现图形界面连接
我们经常见到的几种最为常用的windows下远程管理Linux服务器的方法,基本上都是利用SecureCRT,或者是PUTTY等客户端工具通过ssh服务来实现Windows下管理Linux服务器的,这 ...