随笔分类 -  动态规划

摘要:据说A,B,C题都比较水这里就不放代码了D:Facility Locations然而D题是一个脑经急转弯的题:有m行,n列,每个位置有可能为0,也可能不为0,问最多选K行是不是可以使得每一列都至少有一个0,其中代价c有个约束条件:These costs satisfy a locality prop... 阅读全文
posted @ 2015-05-25 13:38 再见~雨泉 阅读(249) 评论(0) 推荐(0)
摘要:题目大意很简单,和普通的石子合并过程没有区别,只是花费变成了一个多项式,若连续的任意个石子权值和为x,那么代价变为F(x) = sigma(a[i] * x^i),求将n堆石子合并为一队的最小花费。对于暴力的做法,复杂度是O(n^3)的,所以要优化我们知道当a, b, c, d(a 2 #incl... 阅读全文
posted @ 2015-05-11 01:44 再见~雨泉 阅读(3071) 评论(0) 推荐(0)
摘要:一道比较不错的BFS+DP题目题意很简单,就是问一个刚好包含m(m 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include ... 阅读全文
posted @ 2015-05-10 18:54 再见~雨泉 阅读(375) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=3345大意:大意是说现在有n个城市来给你投票,你需要至少拿到m个城市的赞成票。想要获得第i个城市的赞成需要花费w[i],有个条件就是某些城市是在其他某个城市的统治下的,当获得某个城市的赞成票后,那么他所统治的其他城市都会投票给你(不再需要花费),... 阅读全文
posted @ 2014-09-08 23:35 再见~雨泉 阅读(343) 评论(0) 推荐(0)
摘要:http://vjudge.net/contest/view.action?cid=51211#overview花了好长时间了,终于把这个专题做了绝大部分了A:HDU 3853最简单的概率DP求期望,从终点推到起点就是了,注意一个坑就是如果p1=1那么他一旦到达这个点,那么就永远走不出去了题解 1 ... 阅读全文
posted @ 2014-08-03 16:12 再见~雨泉 阅读(518) 评论(0) 推荐(0)
摘要:POJ 1160 Post Office我不知道优化,我只知道最暴力的方法,O(V^3),居然100ms不到的过了设DP[i][j][k]表示考虑前i个小镇,放了j个邮局,最后一个邮局的所在城镇编号为k的k以前的所有的城镇距离最近的邮局的最小距离和(TM自己给自己搞了个这么绕的状态。。)那么有DP[... 阅读全文
posted @ 2014-08-03 15:26 再见~雨泉 阅读(323) 评论(0) 推荐(0)
摘要:有关这个题的高斯消元的方法已经在我的另一篇博客中给出http://www.cnblogs.com/gj-Acit/p/3888382.html这里介绍一个很吊的解法,复杂度降到了O(n),以下转自http://www.cnblogs.com/chanme/p/3861766.html先考虑一场比赛的... 阅读全文
posted @ 2014-08-03 14:48 再见~雨泉 阅读(926) 评论(0) 推荐(0)
摘要:HDU 4870 Rating这是前几天多校的题目,高了好久突然听旁边的大神推出来说是可以用高斯消元,一直喊着赶快敲模板,对于从来没有接触过高斯消元的我来说根本就是一头雾水,无赖之下这几天做DP,正好又做到了这个题,没办法得从头开始看,后来在网上找了别人的高斯消元的模板后发现其实也还是很好理解,就是... 阅读全文
posted @ 2014-08-03 14:42 再见~雨泉 阅读(681) 评论(0) 推荐(0)
摘要:HDU 1561The more, The Better题目大意就不说了直接DP[i][j]表示i为跟节点的子树上攻克j个城堡的所能获得的最多宝物的数量DP[fa][j] = MAX{DP[fa][i-k] + DP[child][k]};首先一个问题就是说如果子树u下的任意子节点被选择了,那么u是... 阅读全文
posted @ 2014-08-03 14:10 再见~雨泉 阅读(250) 评论(0) 推荐(0)
摘要:HDU 4035 Maze体会到了状态转移,化简方程的重要性题解转自http://blog.csdn.net/morgan_xww/article/details/6776947/** dp求期望的题。 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结... 阅读全文
posted @ 2014-08-03 13:49 再见~雨泉 阅读(251) 评论(0) 推荐(0)
摘要:HDU 4539郑厂长系列故事――排兵布阵基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态),直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma comment(linker,"/STACK:102400000,102400000") 2 #incl... 阅读全文
posted @ 2014-08-03 13:41 再见~雨泉 阅读(271) 评论(0) 推荐(0)
摘要:给你一颗边带权值的树,求树上的每一点距离其最远的一个点的距离比较典型的题了,主要方法是进行两次DFS,第一次DFS求出每一个点距离它的子树的最远距离和次远距离,然后第二次DFS从父节点传过来另一侧的树上的距离它的最远距离进行一次比较便可得出任意点的最远距离了之所以需要记录最远和次远是为了辨别父节点的... 阅读全文
posted @ 2014-08-03 13:37 再见~雨泉 阅读(265) 评论(0) 推荐(0)
摘要:HDU 4284 Travel有N个城市,M条边和H个这个人(PP)必须要去的城市,在每个城市里他都必须要“打工”,打工需要花费Di,可以挣到Ci,每条边有一个花费,现在求PP可不可以从起点1走完所有的他必须要去的城市,打完所有的工,并且成功回到起点1由于H 3 #include 4 #inc... 阅读全文
posted @ 2014-08-03 13:28 再见~雨泉 阅读(768) 评论(0) 推荐(0)
摘要:HDU 1520 Anniversary party题目是说有N个人参加party,每个人有一个rating值(可以理解为权值)和一个up(上司的编号),为了保证party的趣味性,每一个人不可以和他的直接上司都参加,问最后的rating和最大这是一个典型的树形DP,DP[i][0]表示i不参加那他... 阅读全文
posted @ 2014-08-03 13:06 再见~雨泉 阅读(608) 评论(0) 推荐(0)
摘要:HDU 3920 Clear All of Them I题目是说有2n个敌人,现在可以发n枚炮弹,每枚炮弹可以(可以且仅可以)打两个敌人,每一枚炮弹的花费等于它所行进的距离,现在要消灭所有的敌人,问最少花费是多少(反正题意大概就是这样啦,知道怎么回事就好了,解释不清了)一看到n 3 #includ... 阅读全文
posted @ 2014-08-03 12:56 再见~雨泉 阅读(442) 评论(0) 推荐(0)
摘要:HDU 3853 LOOPS题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值这是弱菜做的第一道概率DP的题,首先是看了一下有关概率DP的资料,大概知道一般球概率就是从起点推到终点,求期望就是从终点推到... 阅读全文
posted @ 2014-08-03 12:35 再见~雨泉 阅读(718) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2955题目是说一小偷偷东西,第i个物品的价值是M[i],被抓的概率是p[i],现在要使得在被抓的概率在P以下时的所能偷得的最大价值。不同于以往的01背包,这里需要将价值作为物品的大小。同时如果偷A被抓的概率是Pa,... 阅读全文
posted @ 2014-05-09 21:12 再见~雨泉 阅读(194) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3535分组背包,每一组加了以下三个限制 0 stands for the sets that should choose at least 1 job to do, 1 for the sets that should choose at most 1 , 2 for the one you can choose freely#include #include #include #include #include #include #incl... 阅读全文
posted @ 2013-12-01 01:00 再见~雨泉 阅读(279) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3466题目大意是说n个物品每个物品的花费是p,但是如果你现在的钱少于q就买不了这个物品,每个物品的价值是v,求有钱M时的最大价值。一看这个题,就觉得直接按p背包还是按q背包都不对,然后就没有然后了。。。然后看了题解:是说按q-p贪心,其实是这样,每次取q-p最小的,那么每次留下的自然就是最多的金钱。至于严格的证明。。。。。。。待研究剩下的就是01背包了。。,。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 ... 阅读全文
posted @ 2013-12-01 00:54 再见~雨泉 阅读(276) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1338第一反应就是DP,DP[i] = min{2*DP[j], 3*DP[k], 5*DP[p] j,k,p 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std;15 #define INF 0x3f3f3f3f16 #define MAX(a,b) (a > b... 阅读全文
posted @ 2013-11-26 09:17 再见~雨泉 阅读(303) 评论(0) 推荐(0)