DP
gungnir__
Fade to black.
展开
-
codeforces 573B Bear and Blocks
题目来源【解题报告】设 L[i-1]表示经过L[i-1]次操作把前i-1列方块都消除完;如果 L[i-1]那么当第i列左边的方块全部消除掉时,第i列还存在方块,此时将他们整体消除。如果 L[i-1]>=h[i]:那么i列左边的方块全部消除时,第i列已经被消除完所以转移方程如下: L[i]=min(L[i-1]+1,h[i]);原创 2015-08-31 19:34:54 · 522 阅读 · 0 评论 -
Codeforces 629C 简单DP
【题目链接】【解题报告】 比赛的时候跑去做D了,这道题只是简单看了看,赛后补题把它补掉。这个题目只要想通了还是很水的。题意很简单,给你一个长度为m的串S,让你求不同的串P和Q的方案数使长度为n的串P+S+Q为一个合法括号序列。 合法的括号序列要满足: 1.左括号和右括号数量相同 2.该串的任意一个前缀满足左括号数>=右括号数。那么我们设dp[i][j]表示长度为i的串,(比)多j个的方案数原创 2016-02-22 01:27:27 · 872 阅读 · 0 评论 -
HDU 3507 斜率优化
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3507【解题报告】 花了两天时间,终于搞懂了斜率dp是怎么维护数据的,感觉自己理解力实在是弱的同时,也感叹确实难找到好的题解,有的题解甚至是错误的,比如百度这道题里面非常靠前的一篇blog,讲解思路混乱,同时给出了一个错误的结论:维护一个上凸点集。真不知道,他是如何在代码里维护的事下凸点集的情况里原创 2015-12-27 05:31:23 · 277 阅读 · 0 评论 -
UVa 10891 (区间DP)
【题目链接】 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19461【解题报告】 题目大意:给你一个N元序列,每个元有一个分数,每次可以从左边拿或者从右边拿任意多。A,B轮流拿,拿完为止,求问A最多比B多拿多少。其中N<=100. 因为两个人都足够聪明,因此当他们任意一人面临一个(i,j)的局面时,因为原创 2015-11-28 10:44:59 · 337 阅读 · 0 评论 -
POJ 3254 状态压缩DP
【题目链接】 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21819【解题报告】 状态压缩dp入门题。 因为一层最多只有12个节点,容易想到我们用一串二进制数表示它,然后映射到对应的十进制数上。 那么我们可以一层一层的转移。 这里转移的时候需要满足两个条件。 一个状态j,需要满足!(j&(j>>2))。这说明,j原创 2015-12-28 10:28:57 · 296 阅读 · 0 评论 -
ZOJ 3892 Available Computation Sequence(ZOJ Monthly, September 2015)
【题目链接】http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3892【解题报告】 比赛的时候并没有解决这道题目,因为理解错了题意,误认为每一种不同的方案应当保证计算所得结果不同,所以无法设计正确的dp转移方程。实际上在这道题目里只要加括号的方式不同即可认为是不同的方案,那么这道题目就可以区间dp解决。 dp原创 2015-09-17 20:56:40 · 435 阅读 · 0 评论 -
codeforces 577B Modulo Sum
【题目链接】http://codeforces.com/problemset/problem/577/B【解题报告】 卡了很久的一道题,鸽巢原理+DP。 前1~i个数的和,和前1~j个数的和对m取模一定不同才能使1~j没有子序列被m整除;如果相同那么必有i+1~j被m整除。 所以至多m个数会取遍m的剩余类中1~m-1; 所以当n>m时一定存在解。 现原创 2015-09-14 22:42:04 · 353 阅读 · 0 评论 -
HDU 5492 Find a path(2015 ACM/ICPC Asia Regional Hefei Online )
【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=5492【解题报告】 很水的一道dp,赛场上队友a掉了。观察到每个格子的权值不超过30,所以路径总长度的范围为(0~1800),可以考虑枚举做。我们知道在方差公式中有这样一个代换: sum(Ai-M)^2=sum(Ai^2)-N*M^2两边同时乘以N后得到:N*sum(Ai-M)^2=N*s原创 2015-09-30 21:50:17 · 113 阅读 · 0 评论 -
HDU 4597 Play Game(2013吉林通化邀请赛H)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4597【解题报告】 过了好几天才过来补这道题……(羞愧)。 区间DP,设dp[k][l][m][n]为当前局面为a堆k~l没取,b堆m~n没取的最优解,那么下一个状态在以下四个状态中产生: dp[k+1][l][m][n]; dp[k][l-1][m][n];原创 2015-09-06 11:30:30 · 353 阅读 · 0 评论 -
HDU 5001 Walk(2014年鞍山赛区网络赛E题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5001 【解题报告】 概率DP。令DP[i][ map[j][k] ] 表示第i步从第j个城市走到j的第k个子节点的概率。 转移方程: dp[i][ map[j][k] ]+=dp[i-1][j]*1.0/map[j].size(); 显然如果dp[i-1][j]不为0,说明第i-1步可以到达j,原创 2015-09-04 23:34:27 · 295 阅读 · 0 评论 -
BNU 22494 Kitchen Robot
【题目链接】http://www.bnuoj.com/v3/problem_show.php?pid=22494【解题报告】平面上n个点,求把它们全部收集起来的最小距离。首先看到1<=n<=18可以想到进行状态压缩,使用二进制值来保存收集状态,于是这道题目可以明确使用状态压缩dp来解决。设dp[S][v]表示在点集S中v是最后一个被收集的点,那么它可以由以下状态转移而来:dp[S^(1<<i)][原创 2015-09-09 18:30:59 · 343 阅读 · 0 评论 -
HDU 5115 Dire Wolf(2014ACM/ICPC北京赛区现场赛D)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 9.2日组队训练的时候并没有想到是DP,第一眼看过去觉得可能是贪心,因为卡在了计算几何上,并且还有B这道搜索可以开,所以并没有充分的时间来思考这道题目。一道中规中矩的区间型DP题目。 设DP[i][j]表示杀死区间i~j之间的狼所需要花费的最小代价。 该状态由上一个状态转移而来,所原创 2015-09-02 20:31:51 · 851 阅读 · 0 评论 -
POJ 2096 概率DP入门
【题目链接】 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21521【解题报告】 一共有n种bug,s个系统,每天发现一个bug(一共有无限多个bug,bug的种类和属于哪个系统是独立随机事件),问至少找齐 n种bug,每个系统至少找到一个bug的期望天数。我们使用递推的方法来解决这道题目。 设dp[i][j]表示已原创 2016-02-25 14:50:46 · 383 阅读 · 0 评论