ACM
文章平均质量分 55
始之无
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1087 Super Jumping! Jumping! Jumping!
解题思路:最大递增序列,动态规划状态转移方程:d[i] = max(d[j]+a[i]) (0a[j])AC代码:#include #include #include #include #include using namespace std;#define clr(p,v) memset(p,v,sizeof(p))const int maxn = 101原创 2013-06-15 23:10:43 · 499 阅读 · 0 评论 -
hdu2059 龟兔赛跑
解题思路:动态规划状态转移方程:d[i] = max(d[k] + TT) (0TT : k点充电,从k到i点距离时间总共n+2点,n个充电站+起点+终点AC代码:#include #include #include #include #include using namespace std;#define clr(p,v) memset(p,v,si原创 2013-06-17 23:59:51 · 542 阅读 · 0 评论 -
hdu1789 Doing Homework again
解题思路:动态规划 || 贪心太水了,没想到贪心。。。还不会写贪心版。。。。动态规划的马马虎虎过。。。可能有漏洞状态转移方程:d[i][j] = max(d[i-1][j], d[i-1][j-1]+b[i], d[i][j-1])条件:先按时间排序,少的在前,如果相同,罚的,大的在前i : 第几个科目j : 天数b[] :罚的数量AC代码:#i原创 2013-06-18 00:08:31 · 537 阅读 · 0 评论 -
hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
解题思路:多重背包AC代码:#include #include #include #include #include using namespace std;#define clr(p,v) memset(p,v,sizeof(p))const int maxn = 100010 ;int n, m, C;int d[110];void zeroOnePa原创 2013-06-16 23:34:11 · 582 阅读 · 0 评论 -
hdu1114 Piggy-Bank
解题思路:完全背包注意要初始 d[0] = 0AC代码:#include #include #include #include #include using namespace std;#define clr(p,v) memset(p,v,sizeof(p))const int maxn = 10010 ;int n, m, C;int d[maxn原创 2013-06-16 23:32:23 · 525 阅读 · 0 评论 -
hdu1422 重温世界杯
解题思路:动态规划先预处理:对于每一个城市,生活费-花费,得到一个数。接着就是求最大连续子序列和(这题是统计个数),这就算是经典问题吧。状态转移方程:d[i] = d[i-1]+a[i] >= 0 ? d[i-1]+a[i] : 0AC代码:#include #include #include #include #include using names原创 2013-06-16 23:29:10 · 780 阅读 · 0 评论 -
hdu1864 最大报销额
解题思路:0/1背包把实数转成整数,背包只适用整数,*100即可可以报销的票,要么选,要么不选,且只能选一次。不可报销的票:票价>1000,A、B、C类单项>600,注意,一张票可能A类出现不止一次。0/1背包关键代码:for (int i=1; i=a[i]; --j) d[j] = max(d[j], d[j-a[i]]+a[i]);AC代码:原创 2013-06-15 23:29:06 · 470 阅读 · 0 评论 -
hdu2571 命运
解题思路:动态规划,从左上到右下状态转移方程:d[i][j] = max(d[i-1][j], d[i][j-1], d[i][k]) + a[i][j] (kAC代码:#include #include #include #include #include using namespace std;#define clr(p,v) memset(p,v,s原创 2013-06-15 23:16:36 · 485 阅读 · 0 评论 -
hdu1176 免费馅饼
解题思路:动态规划可以看成倒的塔,这个地方转换过来就快了,状态转移方程:d[i][j] = max(d[i+1][j-1], d[i+1][j], d[i+1][j-1])最后答案是d[0][6]AC代码:#include #include #include #include #include using namespace std;#define clr原创 2013-06-15 23:21:57 · 454 阅读 · 0 评论 -
Codeforces Round #209 (Div. 2)思路
A. Table简单题。#include #include #include #include using namespace std;int main(){ int n, m, ans; scanf("%d%d", &n, &m); int x; ans = n*m; for (int i=1; i<=n; ++i) fo原创 2013-11-28 19:28:36 · 540 阅读 · 0 评论
分享