摘要: 题意:求最大升序和。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087——>>设d[i]表示以第i个数为终点的最大升序和,然后从第1个数到第i-1个数为终点的最大升序和进行检查,向后递推即可。#include #include using namespace std; int main() { int N, a[1010], i, j; long long d[1010]; //d[i]表示以第i个数为终点的最大升序和 while(cin>>N) { if(!N) return... 阅读全文
posted @ 2013-01-31 20:01 xiaodanding 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题意:N块石头,每块石头有各自的价值与体积,将石头放入体积为V的背包中,能获得的最大价值是多少。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602——>>0-1背包问题,设d[i][j]为将 前i块石头 放入 容量为j的背包 中的 最大价值,那么第i块石头,要么放,要么不放,放的话,d[i][j] = d[i-1][j-vol[i]],不放的话,d[i][j] = d[i-1][j],取两者中的最大者。#include #include using namespace std; const int maxn = 1000 + 10 阅读全文
posted @ 2013-01-31 19:24 xiaodanding 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意:有N张账单,但只是账单上只有A、B、C类物品的,单类物品账目不超过600的,单张账单账目总和不超过1000的才可报销,问在不超过Q的前提下最多可报销多少元。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864——>>题目中说“单项物品的价值不得超过600元”,我总以为是输入时的单个项的账目不超过600,却不想要把账单里的同一类的加起来再与600比较,WA了N次……背包问题,注意剪枝即可。(可以0MS的。。。)#include #include #include #include #include #include using. 阅读全文
posted @ 2013-01-31 19:00 xiaodanding 阅读(102) 评论(0) 推荐(0) 编辑