摘要: 题目链接:http://poj.org/problem?id=3666 思路: 看了讨论区说本题的数据比较弱,只需要考虑不减序列即可,比较懒,所以我也只写了这一部分的代码,思路都一样,能AC就行了。 首先要想明白一点,就是将每一个elevation更新后的值一定是原来存在的,因为更新一个elevat 阅读全文
posted @ 2019-02-28 11:53 Frank__Chen 阅读(226) 评论(0) 推荐(0)
摘要: 题目链接:http://poj.org/problem?id=3616 思路: 我的第一反应是背包,因为每个interval要么选择要么不选,后来发现状态方程很难写出来。后来想一想发现就是LIS的简单变式。先按照starting hours给数据排序,那么选择的顺序也就是排序后的顺序,用dp[i]表 阅读全文
posted @ 2019-02-26 21:44 Frank__Chen 阅读(256) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 思路: 第一次碰到这种矩阵上的DP题,想了半天也没想明白。本来想用子矩阵的左上角坐标和右下角坐标当作状态,但这样内存肯定是不够的。后来网上查了就明白了。 用dp[i][j]表示以(i,j)为左下角 阅读全文
posted @ 2019-02-26 20:10 Frank__Chen 阅读(225) 评论(0) 推荐(0)
摘要: 题目链接:http://poj.org/problem?id=1088 思路: 明显的记忆化搜索题,用dp[i][j]表示从(i,j)出发能滑的最远距离,用dfs搜索,若dp[x][y]>0即已经计算过,直接返回值即可,否则按照dfs思路递推计算其最大值,递推式为: dp[x][y]=max(dp[ 阅读全文
posted @ 2019-02-26 08:58 Frank__Chen 阅读(437) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 思路: 这是一道典型的记忆化搜索模板题。 先介绍记忆化搜索,本质是搜索+DP。 一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝,可能剪去大量不必要的状态 阅读全文
posted @ 2019-02-26 08:37 Frank__Chen 阅读(928) 评论(0) 推荐(0)
摘要: 题目链接:http://codeforces.com/contest/1130/problem/B 思路: 贪心题。定义结构体数组a,a[i].x[0],a[i].x[1]分别表示i出现的第一个下标和第二个下标。从i到i+1过程中,只有两种可能,即Sasha选择a[i+1].x[0]或Sasha选择 阅读全文
posted @ 2019-02-25 17:26 Frank__Chen 阅读(158) 评论(0) 推荐(0)
摘要: 题目链接:http://codeforces.com/contest/1130/problem/C 思路: 利用DFS搜索(r1,c1)和(r2,c2)可到达的点的集合,分别存在a1,a2中,若a1=a2,即从(r1,c2)可直接到达(r2,c2),输出0即可。否则,暴力枚举a1,a2即可,找到最小 阅读全文
posted @ 2019-02-25 17:11 Frank__Chen 阅读(196) 评论(0) 推荐(0)
摘要: 题目链接:http://poj.org/problem?id=3186 思路: 区间DP,给treat编号为1..n,状态很明显是上界i和下界j,dp[i][j]表示从下标i到下标j之间数据的最大价值。可以正向转移,从dp[1][0]开始,也可以逆向转移,从dp[i][i]开始。我这里是正向转移,状 阅读全文
posted @ 2019-02-24 17:42 Frank__Chen 阅读(153) 评论(0) 推荐(0)
摘要: 题目链接:http://poj.org/problem?id=1661 思路: 把初始位置看成左,右端点均为x0,即长度为0,高度为y0的一个平台,按照平台高度从低到高排序。用dp[i][0],dp[i][1]分别表示从第i个平台的左端,右端到地面的最短时间。tmp=get_next(i,0)表示第 阅读全文
posted @ 2019-02-24 12:07 Frank__Chen 阅读(308) 评论(0) 推荐(0)
摘要: 题目链接:http://codeforces.com/contest/1131/problem/F 思路: 很容易看出这是一道并查集的题目,因为要输出每个cage中住的鸟的编号,故采用静态链表。用l[i]表示一条链的最左端编号,r[i]表示一条链最右端编号,nex[i]表示编号i后面的鸟的编号,ro 阅读全文
posted @ 2019-02-23 23:53 Frank__Chen 阅读(194) 评论(0) 推荐(0)