
dp
文章平均质量分 60
SwustLian
这个作者很懒,什么都没留下…
展开
-
基因匹配Match(最长公共子序列) NlongN
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82285#problem/F 题意:两个串,求最长公共子序列,有n个数,每个数都出现5次。设为a串和b串 分析:首先n。 我们可以把a串作为模式串,b串作为查找串。由于这里每个数只有5次,我们可以先存下a串中的每个数在b串中的5个数的位置,用f[a[i]][j]原创 2015-07-18 21:19:29 · 1427 阅读 · 0 评论 -
UVA 10635 Prince and Princess(最长上升子序列)
题意:有n*n的格子用1-n*n不同的数表示,第一个人输入p+1长度的数,第二个人输入q+1个不同的数,问他们最长公共子序列最长是多长。 分析:由于(0 那么怎么求这个最长上升子序列呢?假设求1,4,6,3,5,7,最长上升子序列 dp[i]:表示长度为i,最小的那个数 ①加入1,dp[1]=1;②加入4,dp[2]=4;③加入6,dp[3]=6;④加入3,dp[2]=3;⑤加入5,dp原创 2015-07-17 22:43:38 · 450 阅读 · 0 评论 -
HDU 3530 Subsequence(单调队列维护)
题意:给n个数的序列,子序列(连续的,题意描述得不是很清楚),要求它的子序列 m 分析:和这道题类似 POJ 2823 Sliding Window 分析题意可知,其实就是求一个区间它的最值满足该条件,且该区间最长,则用两个单调队列维护此时序列的最大值q1和最小值q2。 现态假设 m 加入下列一个点: ①该点加入两个队列后会不会存在 q1-q2q1原创 2015-07-21 10:14:58 · 490 阅读 · 0 评论 -
POJ 1185 炮兵阵地(状态压缩dp)
1. 为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用int s[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?) 2. 如何构造状态: 当然,在此之前首先要想到用DP(?)。之后,才考虑去构造转载 2015-07-21 20:39:51 · 354 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese(记忆化搜索)
题意:老鼠从(0,0)点走,每次最多可以走k步(只能水平或垂直地走),且下一个点的价值比当前点的价值大。求他得到的价值最大为多少。 #include #include #include #include #include #include #include #include #include #include using namespace std; #define maxn原创 2015-10-05 21:49:25 · 338 阅读 · 0 评论