dp(动态规划)
文章平均质量分 69
ccsu_001
这个作者很懒,什么都没留下…
展开
-
pku1050 最大子矩阵问题
To the MaxTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 16586 Accepted: 8423DescriptionGiven a two-dimensional array of positive and negative integers,原创 2009-09-13 20:01:00 · 655 阅读 · 0 评论 -
pku2342&&pku1463&&pku1947
三道都是经典的树形dp,算是入门的树形动态规划。建树,确定状态,找状态转移方程。。。下面贴这三题的代码:pku2342#include#include#includeusing namespace std;#define max(a,b) (a>b?a:b)const int Len=6005;int value[Len];bool root[Len];原创 2010-04-26 10:33:00 · 717 阅读 · 0 评论 -
pku3017 Cut the Sequence
题目链接:http://162.105.81.212/JudgeOnline/problem?id=3017题意简述:给定n个数,把划分成若干个部分,但任意部分的和不能超过m,求一划分使得个部分的最大数之和最小。解题思路:dp。这题只会最朴素的dp,dp[i]=dp[i-k]+value[k,i]; 这样的话复杂度会达到O(n^2),但是有的状态转移是非常明显的不必这样去一味的去找,于是这原创 2010-04-26 16:52:00 · 904 阅读 · 0 评论 -
pku3249 Test for Job
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3249题意简述:给出一个有向无环图,每个顶点都有一个权值。求一条从入度为0的顶点到出度为0的顶点的一条路径,路径上所有顶点权值和最大。解题思路:top+dp。在hdu的一个比赛中看到一个类似的题目,以前听队友提到过这个题目,然后比赛的时候自己写完1y。但在这改了一下后wa无敌,发现自己忽略原创 2010-03-22 22:44:00 · 758 阅读 · 0 评论 -
关于对状态压缩的总结
假定给定一行数,由0和1组成,我们可以把这串0、1序列看作一个二进制序列,于是可以压缩成一个整数表示这一行的状态。上述例子描述了状态压缩的基本性质。但在竞赛中,往往是没有直观的题目,任何算法都要经过思考进行应用的。在此就说说状态压缩的基本操作,通常就是进行一些位运算:~表示按位取反,^表示异或,&表示运算与,|表示运算或。关键就是怎么进行状态转换,和一般dp一样寻找状态和状态转移。关于自己做过原创 2010-03-14 19:45:00 · 642 阅读 · 0 评论 -
pku2353 Ministry
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2353题意简述:有点像一个经典dp问题:数字三角形。不过这里可以横着走,还要输出路径。解题思路:双向dp。设dp[i][j]为在i层第j个位置所能获得的最大值,那么状态方程可以这样写:dp[i][j]=max(dp[i-1][j],dp[i][j+1],dp[i][j-1])+map[原创 2010-03-09 21:27:00 · 526 阅读 · 0 评论 -
pku1015 Jury Compromise
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1015题意简述:给定n个评审人,分别有他们对原告和被告的评分,现选m(m解题思路:感觉这道题就是pku1717(http://acm.pku.edu.cn/JudgeOnline/problem?id=1717)这题的加强版,同样分和的绝对值有关(以后解此类题可沿此思路进行解题)。在这题中原创 2010-01-01 14:54:00 · 1019 阅读 · 0 评论 -
pku2287 Tian Ji -- The Horse Racing
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2287题目简述:田忌赛马,输一场输200,赢一场赢200,可能出现平局的情况。求田忌最多能赢多少。解题思路:以前见过这类问题,如果没有平局的话就是一个贪心:用最差的马和齐王最好的马比,用最快的马去赢能胜过齐王的最快的马。那么有了平局以后,我们就要考虑该局到底是打平,还是分出该局的胜负。原创 2010-03-09 11:39:00 · 566 阅读 · 0 评论 -
pku1485 Fast Food
题目链接:http://acm.pku.edu.cn/JudgeOnline/problemlist?volume=2题意简述:n个restaurants,k个depots,把k个depots建在n个restaurants的k个中,求怎么建使得n个restaurants到depot取材料所需总路程最短。解题思路:同pku1160,就是加了个记录路径的简单操作。题目链接:http://acm原创 2010-03-08 19:46:00 · 1480 阅读 · 2 评论 -
pku2355 Railway tickets
题目链接:http://162.105.81.212/JudgeOnline/problem?id=2355题意简述:求从某点到另一点的最小费用。费用按照题目给定的方式分为三个阶段。解题思路:dp+二分。我们这题一个最朴素的也是最容易想到的方程就是:dp[i]=min(dp[k]+value[k,i]); 但是这样的话,N达到了10000,显然效率很低,对于这题的时限会tle,于是优化:我原创 2010-04-26 10:51:00 · 505 阅读 · 0 评论 -
pku2430 Lazy Cows
题目链接:http://162.105.81.212/JudgeOnline/problem?id=2430题意简述:求用最少的矩形把给定的点完全覆盖。解题思路:状态dp。设0表示值覆盖一格,1表示覆盖两格但是属于同一矩形,2表示覆盖两格不属于同一矩形。代码:#include#includeusing namespace std;#define min(a,b) (a<原创 2010-04-26 11:13:00 · 868 阅读 · 0 评论 -
pku1699 Best Sequence
最近,水题不想做,只有被难题来虐,而往往做一些难题就只有:看题,想题。至于coding就基本没发下手,难题的解题思路实在太难想了,以致于最近很难才能ac一道题。于是找道水题来玩玩找点自信。题目链接:http://162.105.81.212/JudgeOnline/problem?id=1699题意简述:给定n个字符串,求把这些字符串连起来的长度最小,只有某一段相同的才能覆盖相连,不然只能原创 2010-05-20 22:05:00 · 645 阅读 · 0 评论 -
pku3763 Tour in Wonder Land
题目链接:http://162.105.81.212/JudgeOnline/problem?id=3763题意简述:给定无向图,求最少添加几条边能使图存在哈密尔顿回路。解题思路:树形dp。我们用dp[i][0]表示遍历路线是从子树的根结点i进入然后走完子树所有点后从某一非根点跳出(或者是从某一非根点进入最后从i点走出,因为是无向图,这两者是等价的),用dp[i][1]表示遍历路线原创 2010-05-10 21:20:00 · 1279 阅读 · 0 评论 -
pku2138 Travel Games
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2138 题意简述:给定n个字符串,对每个字符串可以在其任何位置插入一个字符,我们称之为一种变化。然后再给定一个初始串,这个初始串一定在原先给定的n个串中,求经过若干次操作以后,所能得到的最长字符串,注意在每次变换以后所得到的字符串必须在所给定的n个字符串中。 解题思路:dp+最短路原创 2010-04-30 17:55:00 · 744 阅读 · 0 评论 -
pku2346 Lucky tickets
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2346题意简述:给定一个偶数n,求n位 lucky tickets 的个数,lucky tickets:n位数可含前导0,前n/2项上数字和等于后n/2项上数字和。解题思路:最多才那么几组数据,而且就算用暴力全部算出来也就那么几秒钟,如果在比赛首选方法当然是打表。但是,平时做题过程中,原创 2010-04-30 17:15:00 · 763 阅读 · 0 评论 -
pku1636 Prison rearrangement
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1636 题意简述:两个监狱,各有n个犯人,每个两个监狱之间一些犯人之间有一定的关系,对于有关系的犯人不能放在同一个监狱,原状态肯定是满足的,因为存在这种关系的不存在同一个监狱的。求最大交换次数使得条件依然满足,并且交换次数不能超过n/2。 解题思路:dp。首先我们可以把有联系的一些原创 2010-04-30 18:11:00 · 748 阅读 · 0 评论 -
pku2374 Fence Obstacle Course
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2374题意简述:题意和pku1661几乎一样的,从最高层的某点,到最底层的0点,求最短横移路程。解题思路:dp+线段树。这题的数据就是大了点,要不完全和pku1661的解法一样了。对于这个问题,可以很快想到dp,并确定状态和方程,dp[i][0]和dp[i][1]分别表示从第i层的左右原创 2010-04-30 15:55:00 · 989 阅读 · 0 评论 -
pku2184 Cow Exhibition
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2184 题意简述:n头cows,每头牛有两个参数:smartness 和 funness 并给定其值。求选取若干头cows,使得sum(smartness)+sum(funness)的值最大,且sum(smartness)和sum(funness)都必须为非负数。 解题思路:dp。原创 2010-04-30 17:37:00 · 618 阅读 · 0 评论 -
pku3093 Margaritas on the River Walk
题目链接:http://162.105.81.212/JudgeOnline/problem?id=3093题意简述:从给定的一列数中选若干个数,使其和sum不能大于所给的限定m,并且m-sum解题思路:首先从大到小排序,然后对所有物品进行0、1决策。ps:从寒假wa到现在,就因为没加case数,晕。。。代码:#include#includeusing namespace原创 2010-04-28 17:40:00 · 901 阅读 · 0 评论 -
pku3254 Corn Fields
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3254题意简述:FJ选定土地饲养corn,不肥沃的土地不能选,不能选相邻的两块土地,求FJ可选的总方案数(包括不选)。解题思路:状态压缩dp。先把所有可能的状态枚举出来,然后枚举当前层的状态和上一层的状态进行动态规划。设dp[i][j]表示第i行的状态为j时的方案总数。则可以把状态转移方程原创 2010-03-11 10:17:00 · 582 阅读 · 0 评论 -
pku2029 Get Many Persimmon Trees
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2029题意简述:给定一个矩阵,里面一些格子有tree。给定w和h,求用宽和高分别为w和h围成的矩形能包含最多树的数目。解题思路:简单的dp,就是根据题意去写,有些东西先处理出来可以降低复杂度,没什么好说的,具体看代码。代码:#include#includeusing nam原创 2010-03-09 10:15:00 · 605 阅读 · 0 评论 -
pku1170 Shopping Offers
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1170题意简述:给定b中物品(0题目解析:这道题明显的dp,我们可以看到题目中所给的数据范围很小 。 状态设计:设int ans[6][6][6][6][6],ans[a][b][c][d][e]表示购买a个第一类物品,b个2类物品,c个3类物品,d个4类原创 2009-11-23 12:46:00 · 510 阅读 · 0 评论 -
pku2385 Apple Catching
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2385一维DP。题意简述:两棵苹果树,在t时间内,分别在一棵树上某时刻会掉苹果,农夫可以选择在哪棵树下接苹果,当然农夫可以在两树间移动,但移动的次数限制为w,对于给定的t,w和落苹果的相关信息,求农夫能接到的苹果最大数。分析:先看看数据输入:7 22 1 1 2 2 1 1原创 2009-10-15 21:15:00 · 575 阅读 · 0 评论 -
pku1160 Post Office
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1160题意简述:有n个村庄,m个邮局,给定各村庄的坐标位置,求n个村庄建立m个邮局使得所有村庄距它最近邮局的距离的和最小,输出最小值。分析:看起来和前一道题目有点类似,但是我写这道题目的时候感觉要麻烦一点,所以可以把这题归类为上一道题的变形加强。下面来确定状态,设dp[i][j]为前i个村原创 2009-10-15 20:34:00 · 1269 阅读 · 0 评论 -
pku1456 Supermarket
题意简述:给定n个商品,每个商品有它的收益和销售期限,求在最后销售期限前的最大收益。这题本来用贪心更简单些,只是这段时间练dp,看到题就陷进去了,并且还没得到很好的效率,但通过这题背包问题确定状态的思路又更清晰了。状态确定:设dp[i]表示在i时间内,能获得的最大收益。状态转移:dp[i]= max(dp[j],dp[j-1]+a[i].p);代码:#include#inc原创 2009-10-15 22:34:00 · 681 阅读 · 2 评论 -
pku1157 LITTLE SHOP OF FLOWERS
题意简述: V A S E S12345Bunches1 (azaleas)723-5-24162 (begonias)521-410原创 2009-10-15 20:27:00 · 500 阅读 · 0 评论 -
pku 1631 Bridging signals
好久没更新blog了,今天抽点时间,写一个水题的blog。题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1631题目大意就是求:从一边的一个地点架桥到另一边的一个地点,当然桥之间是不能相交的。简化题意就是:求一个序列的最长递增序列的长度。开始毫不犹豫就写了个时间复杂的为O(n^2)的代码,但是(p 下面讲讲解题过程:O(n^原创 2009-10-04 23:49:00 · 985 阅读 · 0 评论 -
pku1141Brackets Sequence(括号序列)
题意简述:如下规定:1.空序列是规则序列;2.S是规则序列,则(S)和【S】也是规则序列;3.A,B是规则序列,则AB也是规则序列。给出有(,),【,】构成的序列,编程求出是添加括号尽量少得到的规则序列。分析:其实题意已经道出了状态和状态之间的关系,就设dp[i][j]保存从第i个字符到第j个字符构成的序列要达到规则序列所要添加的最少括号数。再设一个字符串类型的数组ans[i][j]来原创 2009-09-22 22:15:00 · 1053 阅读 · 0 评论 -
pku1185炮兵阵地
本人做的第一道状态压缩dp,特贴代码留此纪念:题目连接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1185#include#include#includeusing namespace std;int states[65];int dp[65][65][105];int map[102];int t;int原创 2009-09-18 20:52:00 · 681 阅读 · 0 评论 -
pku1678 I Love this Game!
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1678题意简述:给定一行长度为2解题思路:x(1),…,x(n)是可以选择的数,注意到两个选手选出来的数都是递增的,所以我们现将X从小到大排序。我们假设第一个人选取一个x(k) (暂时还不需要要求x(k)属于[a,b])之后,以后每个人选的数都与前面那个数相差在a和b之间,最后交替差能保证原创 2010-03-02 12:12:00 · 946 阅读 · 2 评论 -
pku2193 Lenny's Lucky Lotto Lists
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2193题意简述:给定n,m,求在所有元素[1,m]区间内长度为n的s序列数,s序列数定义条件如下:a[i]>=a[i-1]*2。解题思路:两次dp。设dp1[i][j]为长度为i,以j结尾的s序列的个数;dp[i][j]为长度为i,在区间[1,j]内的s序列的个数。dp1状态转移:dp原创 2010-03-03 15:54:00 · 588 阅读 · 0 评论 -
pku2948 Martian Mining
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2948题意简述:给定一个矩形,矩形格子里面装有传输带,有的是向北(N)的,有的是向西(W)的。矩形里分布着两种矿物,有的矿物质的仓库在西面,有的是在北面,物质运送到不同的仓库就会消失,求收集到的最多矿物质。解题思路:简单dp。先把完全向西的和完全向北的处理出来,然后就是设dp[i][j]为原创 2010-03-09 10:59:00 · 539 阅读 · 0 评论 -
pku1322 Chocolate
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1322题意简述: ACM牌巧克力共有C中不同颜色的品种。一天,Sandy进行了如下游戏:从一个装满巧克力的袋子(袋中的不同颜色的巧克力是同样多的,且假定巧克力数目足够多),一个一个拿出巧克力放于桌上,如拿出的巧克力与桌上某一个巧克力颜色相同,那么Sandy则将两块全部吃掉。现要求从袋中拿出了N原创 2010-03-08 12:02:00 · 568 阅读 · 0 评论 -
pku1973 Software Company
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1973题意简述: 一个软件开发公司接到两个任务,两个任务需要都搞定才能算最终完成。 公司有n个技术员。 两个任务均被分成了m小份,m小份无区别每小份任务只能被一个技术员完成,但是不同的两小份可以由两个不同的技术员同时做。解题思路:(这题参考别人的解题报告写的,感觉到了思维能力的重要性。解题原创 2010-03-04 22:10:00 · 682 阅读 · 0 评论 -
pku1609 Tiling Up Blocks
题意简述:http://acm.pku.edu.cn/JudgeOnline/problem?id=1609题意简述:在一个平面坐标轴上(x>=0,y>=0&&x解题方法:1.给这些点先排序,然后用O(nlogn)的算法求最长上升子序列最大长度。 2.根据题目特点,可设dp[i][j]表示(x,y)是所选序列中有m个点比它小,那么dp[i][j]=max(m)。转移方程:dp[i][j]原创 2009-12-26 09:34:00 · 550 阅读 · 0 评论 -
pku1692 Crossed Matchings
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1692题意简述:题目给出上下两排数字,相等的数字可以划一条线,同时,这边线必须与其他有且只有一条匹配的线相交,而且a[i]!=a[i],求最大的匹配方案。解题思路(转别人的):一道类似于最长公共子序列的问题,略有变化,但思想是一样的。这题用到了两次DP,先来说下思路:用 opt[i][j原创 2010-03-05 20:58:00 · 544 阅读 · 0 评论 -
pku1717 Dominoes
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1717题意简述:如图,给定n块骨牌,上下两端有点数,点数大小[0,6],求翻转m次后使得骨牌上下总差值的绝对值最小,在此基础上求得最小的m值。解题思路:背包思想,设dp[i]表示总差值到达i时的翻转的最小次数,每张牌每次翻转都会使差值变化原来差值的两倍,所以我们可以这样设计转移方程:dp[原创 2009-12-26 09:20:00 · 671 阅读 · 0 评论 -
pku3226 String's Puzzle
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3226题意简述:对于给定的特定字符序列,求其对应的字典序。解题思路:暑假时做过,这里就直接贴代码了。代码:#include#includeusing namespace std;char a[30],d[99];int c[50],i,j,k,n;int mai原创 2010-03-02 17:04:00 · 674 阅读 · 0 评论 -
pku1148 Utopia Divided
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1148题意简述:给定n,给定2*n个正整数,用这些数去描述点,然后给定几个数表示坐标轴象限,要求每次选取一个点(可以对给定的整数设置正负)使得与前面一个点的连线组成的向量所对应的坐标在这个象限内,当然把起始点设在(0,0)。求这写点。解题思路:看到这题感觉没想法,看了一份英文版的解题报告,原创 2010-03-03 22:04:00 · 1359 阅读 · 1 评论 -
SRM 459 500p && hust1080 NumberPyramids
题目链接:http://acm.hust.edu.cn/thx/problem.php?id=1380题解:这题太经典了,表示自己想不到。转世界第六HH的题解:156 93 3 62 1 2 4如上所示的数字金字塔,最底层有N首先拿纸笔稍微推一下,假设最下面这层N个数分别为a0, a1, … aN-1,那么最上面的数等于C(N-1, 0) * a0 + C(N-1, 1) * a1 + … + C(N-1, N-1) * aN-1。由于这N个数都是正整数,至少为1,所以当底层的数个数为N时,最顶原创 2010-07-18 22:51:00 · 751 阅读 · 0 评论