各种DP
文章平均质量分 73
JimCell
我不过一只细胞,众大神轻喷……
展开
-
POJ2096
POJ2096题目链接:http://poj.org/problem?id=2096题目大意:一个人很爱收集程序中的bug(这收藏爱好……),一天能找一个,他还把程序中的bug分成了n个类别。现在有一个含有s个子系统的程序,问找齐n种bug,并且每个子系统中都找到一个bug的期望时间(单位:天)。注意:bug无限多(这种程序还敢出版……)关键点:分类讨论首先,由于bug无限多,因此原创 2016-03-05 17:39:13 · 639 阅读 · 0 评论 -
算法复习——背包DP问题
额,看到这题目的童鞋不要马上骂博主SB,我要说的其实不是0/1背包问题,而是树型背包。不过其实可以参考一下0/1背包来看这个文章,因为其实很像的。好吧,讲DP最好的方式还是结合题目一起讲——洛谷1273点击有屠龙宝刀题目看这里:http://dev.luogu.org:3308/problem/show?pid=1273首先我们很自然地想到开一个f数组f[i][j]代表了在i节点为原创 2016-04-15 13:53:14 · 348 阅读 · 0 评论 -
洛谷P1373
题目在此:http://dev.luogu.org:3308/problem/show?pid=1373一道诡异的DP题,最终要求是要令两个人之间收集到的液体差额为0,于是我们令f[i][j][p][l]表示方案数,其中i,j表示上一步两个人其中一个所走的坐标,p表示两人之间的魔液(360输入法都打不出那词,出题人是怎么想到的)差,l=0表示这一步小a走,l=1表示这一步uim走。再根据题目所原创 2016-05-25 13:35:01 · 302 阅读 · 0 评论 -
洛谷P1040
题目:http://dev.luogu.org:3308/problem/show?pid=1040又一道区间DP的好题。枚举区间,对这一区间的分数进行判断(感谢善良的出题人已经把节点自动变成了1..n的中序遍历),判断是否大于原分数,如果大于的话记下目前的根节点和最大分数预处理时:f[i][i]=num[i]f[i][j]=1(i!=j)root[1][i]=1(root原创 2016-05-25 16:58:56 · 449 阅读 · 0 评论 -
ZOJ3329
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3754题目大意:三个骰子,分别有k1,k2,k3个面,如果三个骰子分别扔到a,b,c时分数置零,否则将分数加上a+b+c,当总分超过n时游戏停止,问游戏进行次数期望(初始分数为0)难点:通过假设线性关系消去f[0]以外的位题目做法:首先明确f[i]=su原创 2016-03-07 13:49:49 · 487 阅读 · 0 评论 -
NOIP2010TG引水入城
表示最近确实没做太多事情,毕竟期末考临近要做点准备 好把我那2B班主任的嘴堵上,至少别让他又说三道四不过还是做了一题:点击看题:引水入城这题相当于是把搜索复习一遍(虽说近年来NOIP里面搜索都已经降格到只能用来骗分了)先大力Floodfill一次,找找有没有城市是不能覆盖水利设施的然后如果有,直接输出0;没有的话就继续这里有一个奇怪的推论:每座湖边城市建蓄水厂能覆盖的沙漠城市都原创 2016-06-22 13:37:03 · 498 阅读 · 0 评论 -
洛谷P1156
国庆最后一天校集训队来了场模拟赛,发现本蒟蒻还是太弱了……(NOIP2007初赛真题57.5,上机模拟赛倒数)于是决定还是要多刷点题……然后做了道DP==========分========割=========线==========点击看题:洛谷P1156一道怎么看怎么奇怪的DP,好像背包的说……好吧,整道题决策其实就2个,丢下来的东西要么吃,要么堆用f[i]表示时间为i时的原创 2016-10-09 13:51:29 · 409 阅读 · 0 评论 -
HDU4418——高斯消元+DP
HDU4418题目大意:一个人站在编号为0..n-1的数轴上,以p[i]的概率走i步(i∈[1,m],且∑p[i]=1)给定n,m,起点s,终点e,方向d,求出这人走到终点的步数期望。题目难点:列方程求解;不要用pascal题目思路:首先按一般思路先列出f数组表示期望(废话……)显然f[e]=0,f[i]=∑((f[x+j]+j)*p[j])然后把第二条式子变形,则得到:原创 2016-03-11 14:00:49 · 1417 阅读 · 0 评论 -
洛谷P1941 Flappy Bird
坑到爆炸……想转移方程+打代码一个中午不到的事,调细节调了将近两个中午…………………………点击看题这道题看上去真的就是P1156的改版啊喂……首先认真看完这道题肯定会想到下面的这个东西:f[i][j]=min(f[i][j],min(f[i][j-data[i-1].up],f[i-1][j-data[i-1].up])+1) j>data[i-1].up =原创 2016-10-13 23:02:51 · 298 阅读 · 0 评论