![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 76
qian99
这个作者很懒,什么都没留下…
展开
-
poj 2096 Collecting Bugs(概率dp)
题意:Ivan每天能找到一个bug,现在有一个工程,有n种bug,s个子系统。问在这个工程中找出n种bug并且每个子系统至少有1个bug的天数的期望是多少。思路:用dp[i][j]表示当前找出了i种bug,这些bug在j个子系统中,那么再找一个bug可能的情况有下面几种。①找到的这个bug不在找到的i种bug中,但是在已经出现bug的j个子系统中。②找到的这个bug在找到的i种bug中原创 2014-03-17 19:45:29 · 601 阅读 · 0 评论 -
UVALive 3295 Counting Triangles(组合计数)
题意:给出一个m×n的网格点中能组成的三角形的个数。思路:直接算很难入手,可以发现任意三个点可以组成一个三角形当且仅当三点不共线,因此可以用总的方案数-三点共线的方案数。三点形成的直线是水平或者垂直的很好算。主要问题是不共线的方案的计数,受之前做的UVALive 3295 Counting Triangles的启发,用dp[i][j]表示以(0,0)为左上角,(i,j)为右下角的矩形中三点共原创 2014-03-25 10:42:54 · 900 阅读 · 0 评论 -
CF 346B Lucky Common Subsequence(LCS+KMP)
题意:给出两个串和一个病毒串,要寻找两个串的最长原创 2014-04-21 18:46:55 · 1298 阅读 · 4 评论 -
zoj 3626 Treasure Hunt I(树背包)
题意:给出一棵树,从节点s开始,有时间T,每个结点有一些财富值,走每条边有一定时间,问从s开始,在T时间内,获得结点的财富并返回s所能得到的最大价值。思路:比较简单的树+01背包。。dp[u][m]表示在结点u用m的时间能获得的最大价值。代码:#include#include#include#include#include#include#include#include原创 2014-03-26 18:35:19 · 605 阅读 · 0 评论 -
zoj 3632 Watermelon Full of Water(DP+线段树)
题意:有个人每天都要吃西瓜。。。每天的西瓜的价钱不同,买了西瓜后,最多可以吃ti天,每天最多买一个西瓜,如果一天买了一个西瓜,那么之前买的就要丢掉。问n天花掉的最少多少钱能保证这个人每天都能吃到西瓜。思路:dp方程还是挺好想的。dp[i][j]表示在第i天是否买西瓜所花费的最小价值,dp[i][1]=min(dp[i-1][0],dp[i-1][1])+val[i]。dp[i][0]=min(原创 2014-03-26 18:44:12 · 705 阅读 · 0 评论 -
hdu 4571 Travel in time (floyd+分组背包)
题意:在T原创 2014-04-23 16:44:21 · 766 阅读 · 0 评论 -
FZU 2142 Center of a Tree (树dp+组合计数)
题意:原创 2014-04-08 10:58:24 · 2411 阅读 · 1 评论 -
hdu 4359 Easy Tree DP(dp+组合计数)
题意:原创 2014-04-25 18:59:41 · 702 阅读 · 0 评论 -
SGU 223 Little Kings (状压dp)
题意:给出n*n的矩形,问原创 2014-04-13 16:17:26 · 812 阅读 · 0 评论 -
zoj 3791 An Easy Game(dp)
题意:给出原创 2014-06-01 19:20:07 · 1228 阅读 · 0 评论 -
zoj 3535 Gao the String II(AC自动机+DP)
题意:给出两个字符串集合原创 2014-05-14 22:00:10 · 783 阅读 · 0 评论 -
zoj 3613 Wormhole Transport (斯坦纳树)
题意:有n个星球,原创 2014-04-03 16:57:51 · 763 阅读 · 0 评论 -
UVALive 3720 Highways(组合计数、递推)
题意:n行m列的点阵,问有多少非垂直并且非水平的直线至少穿过点阵中的两个点。思路:第一眼看的时候感觉和一道平面坐标中能看到点的题挺像的,于是按着那题的思路推了个用欧拉公式算的。写完以后发现不对,欧拉公式推的并不能包含所有情况,而且会有重复统计的问题。换个思路,想到了用几个矩阵组合出答案的方法,首先只考虑一个方向的直线(如斜率小于0的),则a[i][j]=a[i-1][j]+a[i][j-1]-原创 2014-03-24 18:29:51 · 872 阅读 · 0 评论 -
zoj 3329 One Person Game(概率dp)
题意:三个骰子,这三个骰子有K1、K2、K3个面,cnt最开始等于0,同时掷3个骰子,如果这三个骰子分别为a,b,c,那么cnt=0,否则cnt+=(a+b+c)。如果cnt思路:最开始推完方程以后发现存在一个E(0)的常数,本来想用直接用dp[i]表示dp[i]-E[0],后来发现不行,因为最后边界的位置就错了。正确的姿势是把E(i)表示为E(i)=A[i]*E[0]+B[i],然后转化为求原创 2014-03-18 11:33:54 · 538 阅读 · 0 评论 -
poj 3744 Scout YYF I(概率dp+矩阵快速幂)
题意:有个人从1位置开始走,每次走1歩的概率为p,走两步的概率为1-p,在N个位置上有地雷,问这个人不踩到地雷通过的概率。思路:可以看出安全走到某一位置的概率f(x)=f(x-1)*p+f(x-2)*(1-p)。类似fibonacci的这么个东西,然后用矩阵快速幂计算到达每个雷的位置的概率和前一个位置的概率。走到最后,结果为安全到达最后一个雷前一个位置的概率×(1-p),也就是要跳过那个雷。原创 2014-03-17 20:48:41 · 768 阅读 · 0 评论 -
poj 3252 Round Numbers(数位dp+组合计数)
题意:询问区间[L,R]内中的二进制数0>=1的数的个数。思路:网上很多都直接推导一下就算出来了。。。。我只会用数位dp搞一下,再计数Orz……觉得自己数学思维实在太差了、、、、dp[i][j][k]表示当前在第i位,前面的有j个0,有k个1的合法的数有多少个。当前面有1的时候,可以算一下至少需要多少个0才能满足要求,比如现在有n位,至少需要m个0,那么结果就为 Σ{i=m to n}(C[n原创 2014-03-28 20:07:39 · 589 阅读 · 0 评论 -
hdu 4405 Aeroplane chess(概率dp)
题意:一个人玩飞行棋,每次走掷的骰子点数歩,地图上有些地方可以直接传送,问期望的掷骰子次数。思路:直接搞就行,没什么坑,遇到有传送的位置直接传就行,刚开始没看到X代码:#pragma comment(linker, "/STACK:102400000,102400000")#include#include#include#include#include#include#i原创 2014-03-18 16:18:00 · 642 阅读 · 0 评论 -
UVA 11077 Find the Permutations(置换+dp)
题意:将n个数的原创 2014-04-15 08:18:02 · 914 阅读 · 0 评论 -
zoj 3637 Education Manage System(dp)
题意:给出n个课的开始时间和结束时间和学分,两节课之间至少休息5分钟,问如何排课使得学分最多。思路:其实看懂了题以后就会发现这是个简单的dp,但是时间的处理之类的东西还是挺烦的。。。把课按结束时间排序,用dp[i]表示以第i节课为结尾的排课方式最多能获得的学分,maxv[i]表示以i或小于i的课为结点为结尾的排课方式能获得的最多学分,则dp[i]=maxv[p]+dp[i],p表示能作为i的前原创 2014-03-19 18:27:40 · 746 阅读 · 0 评论 -
zoj 3640 Help Me Escape(概率dp)
题意:一个人在一个有N条道路的地方,每天他会被随机传送到任意一条道路,每个道路有一个危险值ci,他有个战斗力f,如果f>ci,那么在战斗ti天后会出去,否则f会增加ci,第二天继续这个过程,问他出去的天数的期望。思路:比较简单的概率dp吧,dp[x]表示战斗力为x时出去的天数的期望。如果x>max{ci},那么天数的期望就为1/n*Σti,否则,dp[x]=1/n*Σti(x>ci)+1/n*原创 2014-03-19 18:42:04 · 596 阅读 · 0 评论 -
HDU 2865 Birthday Toy(Polya+矩阵乘法+dp)
题意:要构成一个长度为n原创 2014-04-16 19:10:39 · 849 阅读 · 0 评论 -
poj 2151 Check the difficulty of problems(概率dp)
题意:给出有M道题,T个队伍,和一个值N。给出每个队答对每一题的概率,现在要求满足下面两个条件的概率:①每个队至少做出一道题②做出最多题的队伍做题数不能小于N思路:可以转化成所有队伍至少做出一道题的概率-所有队伍做题数都大于等于1并且小于N的概率。这个可以用dp求出,dp[i][j]表示前i题做出j道的概率。代码:#include#include#include#原创 2014-03-21 19:15:24 · 583 阅读 · 0 评论 -
UVA 11038 How Many O's(数位dp)
题意:查询区间[n,m]中的数有多少个0。思路:数位dp,dp[i][j][k]表示前i位,已经有了j个0,前面是否都是0,这样的数的所有0的个数。代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 0x原创 2014-03-23 19:12:49 · 759 阅读 · 0 评论 -
SGU 220 Little Bishops(状压dp)
题意:n×n的棋盘,原创 2014-06-03 18:43:37 · 850 阅读 · 0 评论 -
hdu 4362 Dragon Ball(优先队列+dp)
题意:有m个时刻,每个时刻会同时出现m颗龙珠,原创 2014-06-04 23:15:15 · 697 阅读 · 0 评论 -
zoj 3812 We Need Medicine(dp)
题意:给出原创 2014-09-08 20:05:32 · 2106 阅读 · 8 评论 -
hdu 4945 2048(DP)
题意:对于一个序列,可以进行这样的操作:选择两个相同的数,将它们替换为它们的和。如果一个原创 2014-08-14 21:42:07 · 1080 阅读 · 2 评论 -
CF 461B - Appleman and Tree(树形DP)
题意:给出一颗树,原创 2014-08-27 09:41:11 · 942 阅读 · 0 评论 -
UVA 1228 Integer Transmission(dp)
题意:将一个n位的整数从左到右原创 2014-09-12 11:55:10 · 1163 阅读 · 0 评论 -
UVA - 10118 Free Candies(dp)
题意:有4堆糖果,原创 2014-09-12 12:37:15 · 886 阅读 · 0 评论 -
hdu 5009 Paint Pearls(dp)
题意:有n个珠子,每个珠子有原创 2014-09-14 19:13:57 · 823 阅读 · 0 评论 -
hdu 4317 Unfair Nim(状压DP)
题意:给出n堆石子,两个人要进行nim游戏,后手要添加原创 2014-09-26 18:00:50 · 765 阅读 · 0 评论 -
UVA - 12105 Bigger is Better(dp)
题意:给出n个火柴,要求用这些火柴组成原创 2014-09-03 14:24:09 · 809 阅读 · 0 评论 -
UVA 12170 Easy Climb(dp+ 单调队列)
题意:给出n个正整数,h1~hn,可以修改除了h1和hn的数,原创 2014-09-04 14:36:37 · 822 阅读 · 0 评论 -
spoj 2829 Time Limit Exceeded (DP)
题意:给出n个数ci,要求构造序列原创 2014-09-17 09:20:36 · 933 阅读 · 0 评论 -
zoj 3802 Easy 2048 Again(状压DP)
题意:有原创 2014-08-25 15:29:47 · 1041 阅读 · 0 评论 -
hdu 4924 Football Manager(搜索+剪枝+dp)
题意:n个队员,每个队员能担任几个位置中的原创 2014-08-09 16:06:33 · 905 阅读 · 0 评论 -
CF 360B - Levko and Array (二分+dp)
题意:给出n个数,可以任意修改其中k个,要求修改后,使得任意两个数之间原创 2014-07-02 22:49:49 · 885 阅读 · 0 评论 -
hdu 4733 G(x) (dp+枚举)
题意:给两个二进制数原创 2014-06-12 16:04:21 · 875 阅读 · 0 评论 -
hdu 4865 Peter's Hobby(DP)
题意:给出n天的湿度,推测概率最大的n天的原创 2014-07-23 21:04:23 · 750 阅读 · 2 评论