
dp
文章平均质量分 75
new_wu
这个作者很懒,什么都没留下…
展开
-
hdoj 3415 Max Sum of Max-K-sub-sequence(单调队列+dp)
【题目大意】:给出一个数组,把其首尾相接起来,然后给定k值,在这个数组(循环的)里找出最大子序列值(子列长度不超过k)【解题思路】:我们很容易得到方程:ans[i]=sum[1,i]-min(sum[1,i-k]) ans[i]表示以i结尾的最大值。 这样的复杂是O(n*k),是不符合题目给的要求的。 这里注意我们要把数组破环,即复制一遍原创 2012-03-25 00:37:50 · 635 阅读 · 0 评论 -
hdoj 1171 Big Event in HDU(背包dp+母函数)
【题目大意】:给出n种数,每种数有m个,问怎么把这n*m个数分成两部分,满足第一部分大于等于第二部分,且尽可能相等。【解题思路】:dp,多重背包问题。 母函数,转化为求n种数m个数可以表示出那些数,计这个数为i,找到i,sum-i使得二者接近。【代码】:母函数:#include #include #i原创 2012-03-30 02:21:54 · 735 阅读 · 0 评论 -
zoj 1095 Humble Numbers(丑数+dp)
【题目大意】:将一些仅含有因子2,3,5,7的数是Humble Number,给出一个n,输出第n个Humble Numbers【解题思路】:丑数的类型题。可用dp解。 我们用ugly[i]表示第i+1个Humble Number,用cnt[i]表示第i个因子现在扩展到cnt[i]这个位置...原创 2012-04-01 10:30:38 · 632 阅读 · 0 评论 -
SicilyOJ(SOJ) 5228 Generic Cow Protests(dp+离散化+树状数组优化)
【题目大意】:给出n个数,现在可以按顺序随意的把n个数划分成任意部分,问使得每一部分的和均不小于0的划分方式有多少种。【解题思路】:dp的转移方程很显然,dp[i]表示前i个数,对其进行任意划分之后满足题设的种类有多少种。则dp[j]=sigema(dp[i]) (0然后...这样写显然会超时....我们要进行优化。-_-!!!!!~...我们可以发现,其实每一次dp值的更改其原创 2012-04-01 01:34:42 · 931 阅读 · 0 评论 -
poj 2063 Investment(dp背包)
【题目大意】:开始时有amount数量的钱,现在要去买d种股票,每一种股票有一个价值和年收益(这里注意(The value of a bond is always a multiple of $1 000.),即股票的价格是1000的倍数),投资时间为year年,如何使得投资的收益最大.【解题思路】:完全背包。注意除个1000~~一开始没除,后来发现了,结果原来数组开太大又忘记改,结果因为me原创 2012-03-19 23:32:34 · 444 阅读 · 0 评论 -
zoj 3077 Move to Baggage Office(离散化处理+背包dp)
【题目大意】:一个人有能量s,现在有n件物品,每件物品有价值v,现在把这件物品要消耗能量x,搬完这件物品能回复能量y。问最多可以搬动多少物品。【解题思路】:背包是明显的....但是也是明显错误的...因为我可能拿了A之后拿不了B,但是拿了B之后却可以拿A....所以需要用离散化来消除这种后效性... 不知道排哪个序啊...一个一原创 2012-04-01 01:55:30 · 749 阅读 · 0 评论 -
poj 1790 Base Numbers(dp)
【题目大意】:给你一个字符串,里面的前一部分是一个数,后一部分是表示他的进制,问这个字符串可以表示成多少个数。【解题思路】:表示某进制数下到第i位表示数的个数....dp[i]=sigema(dp[j])(j>=0 && j条件有2个:1、首先它的前部分的数字必须小于进制数,2、除非它是一个数,否则第一个数位不能是0...(wa了..这里)原创 2012-04-05 02:26:55 · 830 阅读 · 0 评论 -
poj 1042 Gone Fishing(DP)
【题目大意】:john现有h个小时的空闲时间,他打算去钓鱼。john钓鱼的地方共有n个湖,所有的湖沿着一条单向路顺序排列(john每在一个湖钓完鱼后,他只能走到下一个湖继续钓),john必须从1号湖开始钓起,但是他可以在任何一个湖结束他此次钓鱼的行程。输入给出john在每个湖中每5分钟钓的鱼数(此题中以5分钟作为单位时间),随时间的增长而线性递减。而每个湖中头5分钟可以钓到的鱼数以及每个湖中相邻5原创 2012-04-03 02:14:55 · 1189 阅读 · 0 评论 -
poj 1390 Blocks(dp)
【题目大意】:n个带颜色方块排成一列,可进行消去。设消去方块数为x(x>=2),则将得到x^2个分值。方块消去之后,其右边的所有方块就会向左移动,与被消去方块的左边相连。求游戏的最大得分。【解题思路】:现将相同颜色的放开进行一次统计,可以得到col[]表示颜色,len[]表示该颜色的长度;设dp[l][r][k]表示第i块合并到第j个块,且第j块可向后合并长度为k时所取得的最大值。原创 2012-03-18 01:35:29 · 579 阅读 · 0 评论 -
poj 3597 Polygon Division(递推)
【题目大意】:给出一个凸多边形,问将其划分成三角形和四边形有多少种划分方法。【解题思路】:单单将这道题变成划分三角形,每个人无一例外的都会很快的反应到卡特兰数上去。这道题的本质思路也跟卡特兰数相类似,也是一个递推或者说是dp的方法。这里的思路引用了:http://hi.baidu.com/sunnyykn/blog/item/45b16d02cfdfb583d43f7c97.h原创 2012-02-29 00:41:06 · 1331 阅读 · 0 评论 -
hdoj 2476 String painter(dp)
【题目大意】:给出两段字符串,要将a串变为b串,每次可以将其联系的一个子串改成任意的一个字母,问最少需要操作多少次。【解题思路】:dp。去年的暑假,遇到一道类似的问题,是21个点,队友用状态压缩搜索过了,我用贪心也水了过去。但是这一次,是100,没办法搜索,贪心也失效了。 其实这道题目一看就是一个明显的区间dp。 dp[i]原创 2012-03-25 02:11:22 · 1056 阅读 · 0 评论