随笔分类 - dp
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 题意:一个含有n个数栈,每次取出一个数,可以把这个数放在deque(双向队列)首部,放在尾部,或者扔掉不管 但是要保证deque中的数是非递减的。最要求deque中最长能是多少。 思路;对栈中的每
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 题意:给定一棵树,从树中的任意选一个顶点出发,遍历K个点的最短距离是多少?(每条边的长度为1) 代码:
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4815 好久没写dp了。。最开始题意都理解错了, 哎!!我现在很饿也很困!! AC代码:
阅读全文
摘要:题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰的人用0表示。倒着循环即可。 //比赛的时候我用的是二维dp数组表示状态,一直是WA的,搞不懂原因。
阅读全文
摘要:题目链接:https://www.rqnoj.cn/problem/490 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.
阅读全文
摘要:题目链接:http://codevs.cn/problem/1048/ 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。 问安排怎样的合并顺序,能够使得总合并代价达到最小。 题
阅读全文
摘要:题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短。最后输出最短距离即可。注意:每一个地方可重复访问多次。 经典的状压dp,因为每次送外卖不超过10个地方,可以压缩。 由于题中明确说了
阅读全文
摘要:题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2662 1.引言:用dp解决一个问题的时候很重要的一环就是状态的表示,一般来说,一个数组即可保存状态。 但是有这样的一类题目,它们具有dp问题的特性,但状态中所包含的信息过多,如果要用数组来保存状态的话需
阅读全文
摘要:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3534 题意:n 之后 n-1条边,l,r,w;求出树上的最长路径以及最长路径的条数。 //思路参考 http://www.cnblogs.com/a-clown/p/6010109.html
阅读全文
摘要:题目链接:http://poj.org/problem?id=2631 题意:给出一棵树的两边结点以及权重,就这条路上的最长路。 思路:求树的直径。 这里给出树的直径的证明: 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路 现有结论,从任意一点u出发搜到的最远的点一定是s
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/337/D 题意:就是一棵树上,有一些点被来自东方的神秘力量影响的,力量影响范围是d,为可能的力量源有几个。 思路:相当于是找到距离这m的点的距离都不小于d的点的个数。 先从任意一个点一次dfs,找到m个点中
阅读全文
摘要:题目链接:http://poj.org/problem?id=1155 题意:给定一棵树,1为根结点表示电视台,有m个叶子节点表示客户,有n-m-1个中间节点表示中转站,每条树边有权值。现在要在电视台播放一场比赛,每个客户愿意花费cost[i]的钱观看,而从电视台到每个客户也都有个费用,并且经过一条
阅读全文
摘要:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1561 思路:树形dp+01背包 //看注释可以懂 用vector建树更简单。 代码:
阅读全文
摘要:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3632 题意:n个人进行比赛,每个人有一个价值a[i],最后冠军只有一个,只能相邻两个人进行比赛,输的人被淘汰,问最后冠军价值最大是多少 代码:
阅读全文
摘要:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4632 题意:求回文串子串的的个数。 思路:看转移方程就能理解了。 dp[i][j] 表示区间i j 之间的回文子串的个数。 状态转移方程:dp[i][j]=dp[i][j-1]+dp[i+1
阅读全文
摘要:题目链接:http://poj.org/problem?id=1141 题解:求已知子串最短的括号完备的全序列 代码:
阅读全文
摘要:题目链接:http://vjudge.net/contest/140891#problem/F A和B都足够聪明,只有我傻,想了好久才把代码和题意对应上[大哭] 代码:
阅读全文
摘要:题目链接:http://poj.org/problem?id=2955 题意:给定字符串 求括号匹配最多时的子串长度。 区间dp,状态转移方程: dp[i][j]=max ( dp[i][j] , 2+dp[i+1][k-1]+dp[k+1][j] ); 代码:
阅读全文
摘要:题目链接:http://poj.org/problem?id=1651 Description The multiplication puzzle is played with a row of cards, each containing a single positive integer. Du
阅读全文
摘要:题目链接:http://vjudge.net/contest/141291#problem/D 题意:有n个地方,每个地方要穿一种衣服,衣服可以嵌套穿,一旦脱下的衣服不能再穿,除非穿同样的一件新的,问在满足题目要求的穿衣顺序下最少需要准备几件衣服。 思路:区间dp //这个是看的别人的代码理解的,但
阅读全文