hdu 1574 RP问题 01背包的变形
2015-08-15 17:04
239 查看
hdu 1574 RP问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574
分析:01背包的变形。
RP可能为负,所以这里分两种情况处理一下就好。
初始化要注意。
疑问:
初学动态规划,一般是求解是从当前状态由前一个状态得来。一开始我就是这样写状态转移方程的。然而这一个题是当前状态求解下一个状态。
所以对于两者之间,有点困惑,大神求教!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574
分析:01背包的变形。
RP可能为负,所以这里分两种情况处理一下就好。
初始化要注意。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define inf 0x3f3f3f3f int f[20001],th; int a,b,c; void dp() { f[10000]=0; if(a>0) { for(int i=b+10000;i>=0;i--) f[i+a]=max(f[i+a],f[i]+c); } else if(a<0) { for(int i=b+10000;i<20001;i++) f[i+a]=max(f[i+a],f[i]+c); } } int main() { int t,maxx; scanf("%d",&t); while(t--) { maxx=-inf; memset(f,-inf,sizeof(f)); scanf("%d",&th); for(int i=1;i<=th;i++) { scanf("%d%d%d",&a,&b,&c); dp(); } for(int i=0;i<20001;i++) maxx=max(maxx,f[i]); printf("%d\n",maxx); } return 0; } //晕死,又因为初始化位置放错了找错误找半天!
疑问:
初学动态规划,一般是求解是从当前状态由前一个状态得来。一开始我就是这样写状态转移方程的。然而这一个题是当前状态求解下一个状态。
所以对于两者之间,有点困惑,大神求教!
相关文章推荐
- Windows 回调监控 <二>
- Hdu_1003_Max Sum 解题心得
- 1、单例模式
- UVA 10375 - Choose and divide【唯一分解定理】
- Redis学习——环境搭建以及基础命令使用
- C# DataGridView分页显示
- linux 静态库的编译和连接过程遇到的问题
- Leetcode#43||Multiply Strings
- ImageLoader配置
- struts2的工作流程和运行原理
- mongodb 设置远程连接
- JDK7新特性<八>异步io/AIO
- hdu 4277 2012长春赛区网络赛 dfs+hashmap ***
- 为经典版eclipse增加web and JavaEE插件
- 投资人和创业者如何相处 听听几位大佬观点
- C# 编程音量控制
- 比较二个文件的最后修改时间FileListener
- word文档查找是否有非英文字符或者标点
- Java正则表达式实例详解
- Java多线程总结笔记(一)