dp
文章平均质量分 77
cwcactus
这个作者很懒,什么都没留下…
展开
-
poj 3017 Cut the Sequence
题目链接:http://poj.org/problem?id=3017题目大意:将一个序列分为若干段,使每段的和小于m,求各段最大值和的最小值,正解应该是单调队列加线段树或平衡树,不过居然不用数据结构优化还快些,看来是数据的原因啊,毕竟线段树的常数比较大。#include#include#include#include#include#include#include#incl原创 2012-04-25 16:51:06 · 1462 阅读 · 0 评论 -
poj 3124 The Bookcase
题目链接:http://poj.org/problem?id=3124题目大意:将n本书放入一个三层的书架,求书架的最小面积。题目思路:这个题还真是难想啊,我连最优子结构都没有发现,这道题的做法先将书的高度降序排列,定义dp[i][j][k]为对于前i本书,第二个书架的宽度为j,第三个书架的宽度为k时书架的最小总高度,我们规定最高的书放在第一个书架。在开数组时可以省掉一维,则有转移方程:原创 2012-04-29 13:09:36 · 1229 阅读 · 0 评论 -
poj 2193 Lenny's Lucky Lotto Lists
题目链接:http://poj.org/problem?id=2193题目思路:转移方程:dp[i][j]=sum[i-1][j/2]; sum[i][j]=sum[i][j-1]+dp[i][j];其中dp[i][j]记录的是前i个数结尾是j的个数,而sum是小于等于j;#include#include#include#include#include#include#incl原创 2012-04-18 09:58:06 · 725 阅读 · 0 评论 -
poj 2228 Naptime
题目链接:http://poj.org/problem?id=2228题目思路:定义 dp[N][B][2]: dp[i][j][0] = { 现在处于第 i 个小时,之前一共休息了 j 个小时,第 i 个小时休息了。到现在为止获得的最大点数 } dp[i][j][1] = { 现在处于第 i 个小时,之前一共休息了原创 2012-04-18 12:07:09 · 606 阅读 · 0 评论 -
ural 1519 Formula 1
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1519题目大意:求单回路数,参考了陈丹琦的论文和别人的代码,我用了最小表示法和括号表示法两种方法,据说最小表示法适用性更好,因为如果用广义括号表示法的话情况会很多,而最小表示法的情况讨论要简单一些,但是对于一些插头种类较少的题,比如说简单回路和简单路径,用括号表示法有相当大的优势,因为大多数情原创 2012-05-02 11:52:33 · 1585 阅读 · 1 评论 -
hdu 3377 Plan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3377题目大意:求一条简单路径的最大值。题目思路:可转化为单回路来做,不过因为不是每个点都要选,所以在没有左插头和右插头的情况下可以不加插头。#include#include#define Max 1001000#define inf 0x3f3f3f3f#define Hash 3原创 2012-05-02 21:01:04 · 623 阅读 · 0 评论 -
poj 1739 Tony's Tour
题目链接:http://poj.org/problem?id=1739题目大意及思路:求固定起点终点的简单路径数,直接转化为简单回路。#include#include#define Max 100100#define Hash 1000int n,m,ex,ey,cur,mp[15][15],a1,a2,a3,b1,b2,b3;int stack[15],f[15];char原创 2012-05-02 21:13:11 · 665 阅读 · 0 评论 -
hdu 1964 Pipes
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1964题目大意:单回路最小花费。题目思路:插头dp。#include#include#define Max 1001000#define inf 0x3f3f3f3f#define Hash 3007int min(int a,int b){ return a<b?a:b原创 2012-05-02 21:07:19 · 702 阅读 · 0 评论 -
poj 2287 Tian Ji -- The Horse Racing
题目链接:http://poj.org/problem?id=2287题目大意:田忌赛马。题目思路:Ø 1、如果田忌剩下的马中最强的马都赢不了齐王剩下的最强的马,那么应该用最差的一匹马去输给齐王最强的马。Ø 2、如果田忌剩下的马中最强的马可以赢齐王剩下的最强的马,那就用这匹马去赢齐王剩下的最强的马。Ø 3、如果田忌剩下的马中最原创 2012-04-18 21:17:57 · 654 阅读 · 0 评论 -
poj 3345 Bribing FIPA
题目链接:http://poj.org/problem?id=3345题目大意及思路:用最少的钱去收买m个国家,但国家这间有附属关系,如果收买了一个国家,它的附属国也被收买了,做法树形dp+背包,状态转移方程是:dp[u][k]=min(dp[u][k],dp[v][j]+dp[u][k-j]);#include#include#include#include#include#i原创 2012-04-28 20:10:35 · 876 阅读 · 0 评论 -
hdu 1693 Eat the Trees
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1693题目大意:求多回路的方案数。题目思路:这个算是最简单的插头dp了,也是我的第一个插头dp,任重而道远啊!我也是看的网上的解题报告,就没什么写的了。。#include#include#include#include#include#include#include#inclu原创 2012-04-29 22:22:01 · 984 阅读 · 0 评论 -
poj 2152 Fire
题目链接:http://poj.org/problem?id=2152题目大意:在一棵树形的城市中建立一些消防站,但每个城市有一个最大距离限制,求需要的最小花费。题目思路:树形dp,定义dp[i][j]为以i为根的子树且i的消防站建在j的最小花费,best[i]为以i为根的子树的最小花费,则dp[i][j]=w[j]+sum(min(dp[child][j]-w[j],best[child原创 2012-04-17 22:13:28 · 706 阅读 · 0 评论 -
poj 2084 Game of Connections
题目链接:http://poj.org/problem?id=2084题目思路:递推,枚举与点1连接的点即可。import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String[] args) { int n,i,j; BigInte原创 2012-04-13 20:38:17 · 463 阅读 · 0 评论 -
hdu 3872 Dragon Ball
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3872题目思路:单调队列加线段树优化,单调队列的作用是将序列分成最大值不同的若干段。#include#include#include#include#include#include#include#include#include#include#includeusing n原创 2012-04-25 20:15:50 · 1129 阅读 · 1 评论 -
poj 2138 Travel Games
题目链接:http://poj.org/problem?id=2138题目思路:水题,先预处理出每两个串是否可达即可。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3原创 2012-04-16 21:19:04 · 926 阅读 · 0 评论 -
poj 2151 Check the difficulty of problems
题目链接:http://poj.org/problem?id=2151题目大意:求出每个队伍至少做出一题且做得最多的队伍做出至少N个题的概率。题目思路:所有队伍都做出至少一题的概率-所有队伍只做出1到n-1个题的概率。#include#include#include#include#include#include#include#include#include#inc原创 2012-04-17 10:09:57 · 379 阅读 · 0 评论 -
poj 3356 AGTC
题目链接:http://poj.org/problem?id=3356题目思路:类似于最长公共子序列,转移方程dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+(s[i-1]!=str[j-1]));#include#include#include#include#include#include#include#inclu原创 2012-04-26 21:57:55 · 575 阅读 · 0 评论 -
poj 2430 Lazy Cows
题目链接:http://poj.org/problem?id=2430题目大意及思路:用最多k个矩形覆盖所有的牛,且要使总面积最小,做法是将两行压缩成一行并进行离散化,对于每一列有四种状态,而在dp的时候也有四种状态,1、只覆盖上面,2、只覆盖下面,3、上下用一个矩形覆盖,4、上下用两个矩形覆盖。这样就可以写出转移方程了。#include#include#include#includ原创 2012-04-28 19:50:38 · 1658 阅读 · 0 评论 -
poj 3375 Network Connection
题目链接:http://poj.org/problem?id=3375题目大意及思路:将n台电脑插到m个端口上,使距离最小,dp方程很容易想到,但直接计算会超时,所以需要优化,即对于一台电脑我们肯定想让它插到最近的端口上,但是为了总距离最短,可能这些端口被其它电脑占用了,又因为总电脑数为n,所以它的左右两端最多有n个端口被占用,所以只要计算它插到[pos-n,pos+n]的区间即可。#in原创 2012-04-28 22:06:09 · 1103 阅读 · 0 评论 -
poj 2127 Greatest Common Increasing Subsequence
题目链接:http://poj.org/problem?id=2127题目思路:很经典的dp,用dp[i][j]记录第一个串的前i个字符且以第2个串的第j个字符结尾的最大匹配数,中间有一维优化,复杂度为n^2。#include#include#include#include#include#include#include#include#include#include#原创 2012-04-16 17:30:11 · 611 阅读 · 0 评论 -
poj 2047 Concert Hall Scheduling
题目链接:http://poj.org/problem?id=2047题目大意及思路:一个公司有两个音乐厅,求能一年中能获得的最大的收益,这个题还真是有点难想啊,可能是早上不在状态,主要是没解决重复加音乐会的问题,开始的思路是对于dp[i][j],计算两个音乐厅分别从哪里转移过来,这样就会导致重复加入音乐会,看了解题报告才知道,可以只计算i>=j时的情况,这样每次就加在天数大的那个音乐厅上,又原创 2012-04-13 17:34:26 · 869 阅读 · 0 评论 -
fzu 1977 Pandora adventure
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1977题目大意及思路:简单回路数问题,不过有必走点和非必走点之分,做法是在要新加一个括号时判断是否必走,如果不是必走,则可不加括号,还有就是在经过最后一个必走点后,只要存在简单回路就加入ans。#include#include#define Max 20010#define Hash 3007i原创 2012-05-03 09:24:23 · 658 阅读 · 0 评论 -
poj 1038 Bugs Integrated, Inc.
题目链接:http://poj.org/problem?id=1038题目解析黑书139,很好的题。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#原创 2012-03-18 15:28:13 · 526 阅读 · 0 评论 -
poj 1633 Gladiators
题目链接:http://poj.org/problem?id=1633题目思路:用dp[i][j]记录有i个障碍,难度为j的方法数,它是从长度为i-1的情况加一个更高的障碍得到,由于只有高的才能放到低的两个平台之间,所以这时最高的还没有分开,对于前面的i-1个障碍相当于2*(i-1)个平台,由于最高只能插到相临两个平台之间,又由于插到递增平台之间难度不变,其余情况难度增加1,易得方程。im原创 2012-03-30 16:42:02 · 935 阅读 · 0 评论 -
poj 1691 Painting A Board
题目链接:http://poj.org/problem?id=1691题目思路:状态压缩dp水过。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#def原创 2012-04-04 09:30:26 · 711 阅读 · 0 评论 -
poj 2288 Islands and Bridges
题目链接:http://poj.org/problem?id=2288题目思路:TSP问题,不过要注意两个地方,n=1,路径数要用int64,悲剧啊,变量居然冲突了,害得我检查了一个小时;#include#include#include#include#include#include#include#include#include#include#includeusi原创 2012-04-19 10:32:25 · 573 阅读 · 0 评论 -
hdu 3045 Picnic Cows
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3045题目思路:比较典型的斜率优化dp,不过我敲错了好多次啊!后来打了1千组数据才发现,原来y[i]不单调,x[i]又有相同值,这样如果只在小于时才删除点的话,就可能出现有些点永远不能删去,即在相同x上出现三个点上升又下降的情况。比如这组数据1 2 3 3 3 4 5,所以在小于或等于时都要删点才行原创 2012-04-19 19:27:24 · 701 阅读 · 0 评论 -
poj 1699 Best Sequence
题目链接:http://poj.org/problem?id=1699题目思路:先用kmp算最大匹配,然后问题就转化成了一个TSP问题,直接用状态压缩dp求解即可。#include#include#include#include#include#include#include#include#include#include#includeusing namespace原创 2012-04-04 16:35:19 · 803 阅读 · 0 评论 -
poj 3420 Quad Tiling
题目链接:http://poj.org/problem?id=3420题目思路:状态压缩+矩阵二分幂,一般解法是构造16*16的转移矩阵,也有一种是去掉无用状态,只剩下5个有用状态的5*5转移矩阵。还有一种方法是推组合学公式。#include#include#include#include#include#include#include#include#include原创 2012-04-23 15:10:34 · 1149 阅读 · 0 评论 -
zoj 3213 Beautiful Meadow
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3213题目大意:求最大简单路径。题目思路:插头dp,增加独立插头,有可不走点需要特殊处理一下。这个题写得相当纠结啊,写括号表示法的时候有一个地方忘了处理了,花了一晚上都没调出来,今早上用最小表示法打数据对比才找到了错误,真是相当辛苦啊,不过括号表示法的效率依原创 2012-05-04 16:20:15 · 903 阅读 · 0 评论 -
poj 1185 炮兵阵地
题目链接:http://poj.org/problem?id=1185题目大意,在保证不互相攻击的条件下放炮兵,开始题意理解有误,写了很久都没有写出来,这是一个比较好的状态压缩dp,先将一行的所有可能状态搜出来,再枚举所有可能状态逐行dp,这个题要枚举前两行状态,当然也可以用3进制。#include#include#include#include#include#include原创 2012-03-24 10:13:08 · 404 阅读 · 0 评论 -
poj 1180 Batch Scheduling
题目链接:http://poj.org/problem?id=1180题目大意:见黑书153页,哎,因为一个细节wrong了很久,我太水了#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define原创 2012-03-23 16:49:45 · 425 阅读 · 0 评论 -
poj 1062 昂贵的聘礼
题目链接:http://poj.org/problem?id=1062这个题是一个简单的树形dp,只是有一个地位差限制,可以枚举可行区间,在可行区间里进行dp.#include#include#include#include#include#include#include#include#include#include#includeusing namespace s原创 2012-03-18 17:33:16 · 424 阅读 · 0 评论 -
poj 2250 Compromise
题目链接:http://poj.org/problem?id=2250poj 的数据好水啊!#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define原创 2012-04-18 16:16:01 · 395 阅读 · 0 评论 -
poj 2374 Fence Obstacle Course
题目链接:http://poj.org/problem?id=2374题目思路:水题。#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#原创 2012-04-19 21:38:57 · 631 阅读 · 0 评论 -
poj 2378 Tree Cutting
题目链接:http://poj.org/problem?id=2378水题。。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define Max 11原创 2012-04-19 22:20:26 · 605 阅读 · 0 评论 -
poj Optimal Keypad
题目链接:http://poj.org/problem?id=2292求最小字典序还是反向dp,正向搜索稳当一些,个人认为。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x原创 2012-04-19 14:00:41 · 600 阅读 · 0 评论 -
2397 Spiderman
题目链接:http://poj.org/problem?id=2397题目大意:背包,要求是最后高度为0,且最大高度尽量小,我居然开始想到的是二分答案,其实根本不用,因为高度是满足最优子结构的。#include#include#include#include#include#include#include#include#include#include#include原创 2012-04-22 16:59:53 · 611 阅读 · 0 评论 -
hdu 4328 Cut the cake
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4328题目大意:求同色最大矩形,颜色相间的最大正方形。题目思路:这种程度的dp都没做出来,我太弱了。。枚举下底,直接处理大左界和右界即可,对于相间的,将行列和为奇数的反转,就转化为同色。话说高度为0的时候要特别注意啊!我开始的处理的方法会让他们的左右界到-1和m,如果不去除这种情况,会得到m*2原创 2012-08-14 11:17:22 · 620 阅读 · 0 评论 -
hdu 4323 Magic Number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4323题目大意,求一个字典中,与询问串的最小编辑距离小于等于d的个数。题目思路:dp很容易想,比赛的时候由于以为会超时,一直不敢写,结果直接暴力就可以过。。题解上说可用BK-tree优化,结果优化结果很不理想,和暴力差不多。。#include#include#include#inclu原创 2012-08-13 21:23:51 · 718 阅读 · 0 评论