
dp
文章平均质量分 71
xymscau
这个作者很懒,什么都没留下…
展开
-
hdu 3905
题意:在一节课上选一些时间听讲,选一些时间睡觉,听讲的时间必须是连续的,且不短于给定值,睡觉时间不需要连续。每分钟有一定的价值,求怎么保证一定的睡眠条件下,取得最大的听课的效率。读完题目后就想到了post office的模型,可以这么描述这个问题:在连续的数组里面选m个断原创 2011-08-31 19:50:16 · 1154 阅读 · 0 评论 -
poj 3280
题意:对一个字符串进行插入删除等操作使其变成一个回文串,但是对于每个字符的操作消耗是不同的。求最小消耗.显然是一个dp问题,可以设定状态dp[i][j]表示从i~j这一段变成回文的最小消耗,显然状态转移就是if(s[i]==s[j])dp[i][j]=dp[i+1][j-1]原创 2011-08-30 19:22:05 · 2432 阅读 · 0 评论 -
poj 1390
题意:一个方块消除的游戏,每次可以消除颜色相同的方块,每次得分是你消除的格子的数量的平方。黑书上的一题。 参照《算法艺术》上的算法 题目的方块可以表示称color[i],len[i],1 这里l表示有多少"段"不同的颜色方块原创 2011-10-09 15:38:57 · 1891 阅读 · 0 评论 -
hdu 1024
题意:从数列中选出m段不相交的连续子段,求这个和最大。wa了一个晚上,不爽,最后拿人家的程序对拍才发现问题。这题要有优化,要记录上层的最优解,这里有点不好处理。状态:dp[i][j]表示以j结尾的i个子段和的最优解;转移:dp[i][j] = max{dp[i][原创 2011-10-09 22:49:39 · 1879 阅读 · 0 评论 -
poj 1191
黑书上的一题,题意很简单。黑书P116均方差公式比较复杂,先将其变形S^2 = 1/n∑(Xi - X)^2 = 1/n(n*X^2 + ∑Xi^2 - 2*X∑Xi) = 1/n∑Xi^2 - X^2; X表示均值原创 2011-10-09 09:22:04 · 2534 阅读 · 0 评论 -
hdu 3519
给你n个硬币,问你存在连续相同(正面or反面)长度>2的排列数。n很大,显然dp还要加上优化,ndp[i][j]表示前i个硬币最后j个是连续的。那么dp[i][j]只有两种转移方法:dp[i+1][j+1],dp[i+1][1];因为长度一旦超过2,我们就可以确定这个排列是符合要求的,后面的任何一位不管是正面还是反面都满足要求,所以就可以算出dp[i][3]*2^(n-i);一旦出原创 2012-02-06 23:03:49 · 1014 阅读 · 0 评论 -
poj 3971
排位赛的一题,当时没有做出来,回来后看了大仙的代码才写出来的。大仙没有讲思路,我在这里说说吧。题意是给你个天平,你有2^0,2^1,2^2,2^3......2^n-1个砝码,问你称一个质量为m(二进制形式)的物体有多少种方法,注意天平左右两个盘都可以放砝码。状态设定:dp[i][0]表示第i个砝码不取的合法组合,dp[i][1]表示取了第i个砝码合法组合。1.如果说m中某一位为0原创 2012-03-20 20:11:32 · 853 阅读 · 0 评论 -
hdu 4249
一题挺恶心的dp,写了我140行,讲讲思路吧。状态:dp[len][i][j][k],表示三个数的第len位分别为i,j,k。限制条件:不能有前导0转移方程 if((i+j)%10==k)dp[len][i][j][k]+=dp[len-1][ii][jj][kk];其中ii+jj==kk||ii+jj+1==kkif((i+j+1)%10==k)dp[len][i][原创 2012-07-20 12:37:44 · 1057 阅读 · 0 评论 -
插头dp的几个模板
/*ural1519求经过所有可行点的哈密顿回路的个数括号匹配法,转移有点复杂,但是时间空间比较小*/#include#include#include#include#include#include#include#include#define LL long longusing namespace std;const int maxn=30001;int n,m,原创 2012-10-10 17:08:09 · 4592 阅读 · 0 评论 -
hdu 1693 插头dp
题意:在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少中方法。这题是插头dp,刚刚学习,不是很熟悉,研究了好几天才明白插头dp的方法,他们老是讲一些什么轮廓线啊,插头啊什么的,刚开始完全不知道这些事干什么的,看完cdq的大作后也是原创 2011-09-07 13:11:38 · 6146 阅读 · 0 评论 -
uva10572 black&white 插头dp
终于切了第一道广义路径的题目,也确实感到比较复杂,最小表示法的优势也可以体现出来,因为这题,昨天的澡到现在才洗完,按照小hh的思路,用一条轮廓线记录联通状态,注意这里的轮廓线已经不是m+1啦,因为我们不需要左插头了,每个格子可以插至多4个插头,另外一条轮廓线表示当前的染色状态,这个要m+1因为还要保留左上格子的颜色,然后我们对于4个格子的颜色讨论,左,上,左上,当前,一共16中情况,8种是对称的,原创 2012-10-10 13:58:15 · 1543 阅读 · 0 评论 -
poj 3616
题意:你有一头奶牛,你能够在一定的时间里挤奶。而且挤奶量也不同,每次挤奶要休息r时间,问你最大可以挤多少奶。水题一道,看完就知道一定是对时间段dp,然后就是两个for的事了。只要前面能满足条件的状态就可以转移过来,然后取最大,不过要先排序。状态设定:dp[i]表示从开始取原创 2011-08-30 23:59:03 · 3376 阅读 · 0 评论 -
poj 2127
题意:求最长上升公共子序列(LCIS),并记录路径.状态:dp[i][j]表示以s1串的前i个字符s2串的前j个字符且以s2[j]为结尾构成的LCIS的长度。状态转移:当 s1[i-1]!=s2[j-1]时,按照lcs可知由2个状态转移过来,dp[i-1][j],dp原创 2011-08-27 19:23:54 · 2443 阅读 · 0 评论 -
poj 3014
题意:求将m块蛋糕放进n个盘子里的方案数。dp的状态实在想不出来,看人家的题解写的。状态dp[i][j]表示把j个蛋糕放到i个盘子里的方案数。分3类讨论:1.i>j,肯定有空的,那么就直接等于dp[i-1][j],就是i-1个盘子装了j个蛋糕了,你再拿了一个盘子出原创 2011-08-31 23:04:14 · 1112 阅读 · 0 评论 -
hdu 1028
题意:将1个整数划分,有多少种划分方法。状态:dp[i][j] 表示i划分中最大的元素是j的方案数。状态转移:if(i!=j)dp[i][j]=dp[i-j][j]+dp[i-1][j-1];因为含有j的方案数只与之前有j的方案数dp[i-j][j],和之前没有j的原创 2011-09-01 23:06:40 · 1419 阅读 · 0 评论 -
CF D. Buses
这题题意是从0到0=dp[i]表示到达第i个站的乘车方法,这样好像不行n前面的状态一定要先统计,这是必需的,这里你会发现是对一连续区间求和,就用树状数组来实现吧,不过要离散化,我之前写个离散化用了二分查找,开了几个数组写乱了,花了不少时间纠错,后面用map感觉方便很多,代码也变少原创 2011-08-05 19:24:52 · 808 阅读 · 0 评论 -
poj 3378
连续三场吃蛋,感觉压力好大,总结一下,首先英语不好,读题比较吃力,这一点正在努力改变,其次思维有点死了,脑袋里想到一个方法就狂敲,结果狂wa,程序越改越乱,心墙也会随着变化,每次去比赛就是想着不吃蛋,心里压力较大,还有自身代码写的太多bug了,经常wa,每次提交都是一次失望,想想原创 2011-08-09 12:44:18 · 1400 阅读 · 3 评论 -
poj 2336
这题题意是用船把m辆车载过河,每辆车到码头的时间不同,来回一次要时间2t,每一次可以载n辆车;一眼看过去好像有三个状态,关键是车,但是还有个趟数,其实就是相当于记录路径,那么这题就简单了,每辆车可以和前面n,n-1,n-2......辆车一起运,这样我们就可以这样来设定状态了,d原创 2011-08-09 12:46:14 · 998 阅读 · 0 评论 -
hdu 2372
dp原创 2011-03-21 20:02:00 · 697 阅读 · 0 评论 -
hdu 4001
题意:给你些积木,分三类,0:只能放在小于等于它的长和宽的积木上,1:只能放在长和宽小于等于它且面积小于他的木块上,2:只能放在长和宽偶小于它的木块上。求积木的最高高度。显然dp,排一下序,dp一下就出结果了,可惜我wa了几次,在求面积的时候溢出了,太不小心了,记过。状态原创 2011-09-14 01:49:16 · 1607 阅读 · 0 评论 -
编辑距离 (dp)
Time Limit:1000MS Memory Limit:65536KDescription 俄罗斯科学家Vladimir Levenshtein在1965年提出了编辑距离概念。编辑距离,又称Levenshtein距离,是指两个字符串之间,由一个原创 2011-07-12 21:52:57 · 1601 阅读 · 0 评论 -
poj 1160(dp)
Post OfficeTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 10824Accepted: 5801DescriptionThere is a原创 2011-07-12 21:40:18 · 1068 阅读 · 0 评论 -
命运年轮 -概率dp
Time Limit:1000MS Memory Limit:65536KDescription 概率论的起源与赌博问题有关。16世纪,意大利的学者吉罗拉莫·卡尔达诺(Girolamo Cardano,1501——1576)开始研究掷骰子等赌博中的一些简单问题。17世纪原创 2011-07-12 21:56:27 · 1201 阅读 · 0 评论 -
zoj 3213 Beautiful Meadow 插头dp
求任意路径可以得到的最大权值和,这题和前面的题目不一样,插头的起点和结束点都不是确定的,所以要加一个插头表示单插头,表示起点或终点,接着就是恶心的转移,一直漏一个条件,后来看小hh的代码发现问题,终于过了。Run IDSubmit TimeJudge StatusProblem IDLanguageRun Time(ms)Run Memory(KB)原创 2012-10-07 19:00:27 · 1087 阅读 · 0 评论