- 博客(56)
- 收藏
- 关注
原创 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
原创 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
原创 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
原创 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
原创 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
原创 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
原创 表达式求值
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define Max 110int max(int a,int b){ return a>b?a:b;}
2012-04-26 17:15:13 601
原创 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 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 1463
原创 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
原创 poj 2411 Mondriaan's Dream
题目链接:http://poj.org/problem?id=2411题目思路:状态压缩dp,貌似如果有多次询问相同,可以记录答案。。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std
2012-04-22 22:08:39 526
原创 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
原创 poj 2384 Harder Sokoban Problem
题目链接:http://poj.org/problem?id=2384题目大意及思路:推箱子变形,不过求的是初始状态自选,所有选择的最小步数的最大值,倒着bfs就可以了。有两个地方需要注意,就是如果箱子一直没动,则不能加入队列并计算最值,还有就当处于可以推动箱子的位置时,可能是推过来的,也可能没推。#include#include#include#include#include#
2012-04-20 21:52:30 1191
原创 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
原创 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
原创 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 702
原创 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
原创 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
原创 poj 2287 Tian Ji -- The Horse Racing
题目链接:http://poj.org/problem?id=2287题目大意:田忌赛马。题目思路:Ø 1、如果田忌剩下的马中最强的马都赢不了齐王剩下的最强的马,那么应该用最差的一匹马去输给齐王最强的马。Ø 2、如果田忌剩下的马中最强的马可以赢齐王剩下的最强的马,那就用这匹马去赢齐王剩下的最强的马。Ø 3、如果田忌剩下的马中最
2012-04-18 21:17:57 654
原创 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 397
原创 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 607
原创 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
原创 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
原创 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
原创 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 927
原创 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 612
原创 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
原创 poj 2047 Concert Hall Scheduling
题目链接:http://poj.org/problem?id=2047题目大意及思路:一个公司有两个音乐厅,求能一年中能获得的最大的收益,这个题还真是有点难想啊,可能是早上不在状态,主要是没解决重复加音乐会的问题,开始的思路是对于dp[i][j],计算两个音乐厅分别从哪里转移过来,这样就会导致重复加入音乐会,看了解题报告才知道,可以只计算i>=j时的情况,这样每次就加在天数大的那个音乐厅上,又
2012-04-13 17:34:26 869
原创 poj 2019 Cornfields
题目链接:http://poj.org/problem?id=2019题目思路:用单调队列做预处理,n^2的复杂度。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f
2012-04-12 21:16:20 615
原创 poj Corporative Network
题目链接:http://poj.org/problem?id=1962题目思路:并查集。#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f
2012-04-12 15:56:17 424
原创 poj 1949 Chores
题目链接:http://poj.org/problem?id=1949题目思路:简单树形dp。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#defin
2012-04-12 14:26:38 472
原创 poj 1947 Rebuilding Roads
题目链接:http://poj.org/problem?id=1947题目大意及思路:求从一棵树上切下p个结点的子树最少需要切的边的条数,做法是树形dp加背包。#include#include#include#include#include#include#include#include#include#include#includeusing namespace s
2012-04-12 13:40:28 561
原创 poj 1946 Cow Cycling
题目链接:http://poj.org/problem?id=1946题目思路:用dp[i][j][k]表示已经跑了i圈,场上还剩j头牛且能量为k时消耗的最少时间。#include#include#include#include#include#include#include#include#include#include#includeusing namespace
2012-04-11 15:16:36 759
原创 poj 1934 Trip
题目链接:http://poj.org/problem?id=1934题目思路:哎,数组开小了,开始一直没看出来,晕啦。我的写法不是很好,其实可以用last1[i][j]表示字符i在第一个字符串的前j个字符中出现的最后位置,同理last2,这样就可以去重了,而且可以提高效率。#include#include#include#include#include#include#inc
2012-04-11 11:26:20 847
原创 poj 1926 Pollution
题目链接:http://poj.org/problem?id=1926题目思路:对每个连通分量按度均分即可。这次很快就想到了解法,不错!#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define
2012-04-10 20:29:23 1115
原创 poj 1920 Towers of Hanoi
题目链接:http://poj.org/problem?id=1920题目思路:这道题要倒过来想,就是从一根柱子的状态到达当前状态,这样只要从最大的disk到最小的disk判断是否需要移动就可以了。#include#include#include#include#include#include#include#include#include#include#includ
2012-04-10 16:08:07 813
原创 poj 1874 Trade on Verweggistan
题目链接:http://poj.org/problem?id=1874题目思路:简单题,不过题意好难理解啊!#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f
2012-04-10 14:36:19 546
原创 poj 1850 Code
题目链接:http://poj.org/problem?id=1850#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define Max 110int
2012-04-10 11:57:01 427
原创 poj 1848 Tree
题目链接:http://poj.org/problem?id=1848题目思路:这个题目的思路还真是相当难想到啊!膜拜大牛。。网上有详细题解,我就不写了。。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std
2012-04-10 10:36:09 588
原创 poj 1821 Fence
题目链接:http://poj.org/problem?id=1821题目思路:单调队列优化,不过要注意界的处理。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3
2012-04-09 21:17:53 665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人