ACM_动态规划
文章平均质量分 84
frog1902
Never say never
展开
-
SOJ 2505: The County Fair
刚刚发现我这个博客里怎么写的全部都是图论类的题解啊。。。。就算是网络流和二分图也是一种特殊的图论嘛= 。=其实这不怪我啊。。。还不是因为前一阵子被超哥吐槽说训练强度太低。。。我也不知道在他眼中我到底做啥题才能算是提高训练强度了 =。=于是就狂刷了一阵子网络流和线段树。。然后我觉得线段树这种数据结构的题还不是考对代码的统筹能力,又没啥好写的= =于是翻翻solution就原创 2012-12-09 17:06:24 · 933 阅读 · 0 评论 -
ZOJ 3734: LIKE vs CANDLE
题目链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5069题目大意:若干微博账户形成了一个转发树(即一个有根树)。每个账户有自己的价值,每个账户也有自己的态度(赞或蜡烛)。如果一个账户的态度是“赞”,它的价值就会被加到“赞”的一边,反之亦然。你可以从“赞”的一边拿出X 的价值原创 2013-11-24 17:03:51 · 2503 阅读 · 4 评论 -
CF 379D: New Year Letter
题目链接:http://codeforces.com/contest/379/problem/D题目大意:给定一个长度为n的字符串s1和一个长度为m的字符串s2。做k - 2次类似斐波那契的操作:sk = s(k-1) + s(k-2)。已知sk中恰好含有k个"AC"子串,求是否存在符合条件的s1、s2算法:显然,原创 2014-01-01 00:28:38 · 1317 阅读 · 0 评论 -
HDOJ 3311 Dig The Wells
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3311题目大意:现在有n个寺庙和m个城市,在这个n + m个城市之间有p条道路。在道路上修建运输的管道有一定的花费,在某个城市挖井也有一定的花费。求使得n个寺庙都能喝到水的最小花费算法:斯坦纳树模板题。斯坦纳树指的是,包含图上某个特定点集的最小生成原创 2014-01-21 19:25:59 · 1084 阅读 · 0 评论 -
POJ 3123 Ticket to Ride
题目链接:http://poj.org/problem?id=3123题意:在n个城市间要建立四条铁路线,给定每条线路的起点和终点。如果某两个城市之间可以建造铁路,那么建造这条铁路将有一定的花费。求建立四条的最小总费用。算法:这道题还是斯坦纳树,以四条线路的起点和终点为关键点。关键点中显然可能有重复的,不过不影响解题。注意,最终要求的地图可能是由原创 2014-01-22 02:17:52 · 1891 阅读 · 0 评论 -
SRM 552 - 500 FoxAndFlowerShopDivOne
题目链接:http://community.topcoder.com/stat?c=problem_statement&pm=11387题目大意:一个矩阵中种了两种花,一个方格里最多种一支花,可以不种。现在要在矩阵中选取两个不相交的子矩阵,使其中两种花数量之差不超过规定值,且两种花的总数最大。算法:这道题是很水的一道枚举题。两个不相交子矩阵,要不就是原创 2014-01-24 01:04:29 · 1296 阅读 · 0 评论 -
SRM 610 - 550 AlbertoTheAviator
题目链接:暂无题目大意:有n个任务需要完成,初始具有F的能量。任务i开始之前至少要具有的能量duration[i],任务结束后可以得到refuel[i]的能量补充,refuel[i]严格小于duration[i]。完成任务的顺序不限,问至多完成多少个任务。算法:先排序再背包。排序的时候要先按照refuel[i]从大到小,再按照duration[i]从原创 2014-02-26 14:07:53 · 1234 阅读 · 0 评论 -
CF 109C: Lucky Tree
题目链接:http://codeforces.com/contest/109/problem/C题目大意:在一棵树上,有一些边是幸运边,现要求出点组(i, j, k)的数量,使得i 到j 的路径上和i 到k 的路径上都至少有一条幸运边。算法:法一:将点按照非幸运边缩联通块。枚举做i 的点,那么以该点为i 的所有解,即是由i 点与任意两个不与它在同一个联通原创 2014-03-25 01:23:06 · 1222 阅读 · 1 评论 -
SRM 553 - 500 TwoConvexShapes
题目链接:http://community.topcoder.com/stat?c=problem_statement&pm=11387题目大意:一个矩阵中种了两种花,一个方格里最多种一支花,可以不种。现在要在矩阵中选取两个不相交的子矩阵,使其中两种花数量之差不超过规定值,且两种花的总数最大。算法:这道题是很水的一道枚举题。两个不相交子矩阵,要不就是原创 2014-07-02 00:02:12 · 1145 阅读 · 0 评论 -
HDOJ 4670: Cube number on a tree
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4670题目大意:树的每个节点有一个点权,所有的点权都可以被给定的30个质数表示出来。在树上找合法点对。合法点对指的是,两点间路径上的所有点(含端点)的点权乘积是立方数的点对。注意:点对中的两个点可以是相同的,这个坑了我好久,切~算法:树的点分治。每次处原创 2013-08-24 17:27:29 · 1257 阅读 · 0 评论 -
BZOJ 2038: 小Z的袜子
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2038题目大意算法:很有趣的是,这道题我在两周前去成都赛区的时候就做出来了,一直忘了贴了。。原创 2013-11-08 19:40:12 · 1279 阅读 · 0 评论 -
CF 341C: Iahub and Permutations
题目链接:http://codeforces.com/contest/341/problem/C题目大意:给定一个含有N个位置的序列,某些位置上的数字已经确定,某些位置上的数字没有确定。求这个序列可能产生多少种错排(a[i] != i)。算法:DP的方法有很多种。也可以容斥。原创 2013-09-02 01:00:08 · 2148 阅读 · 0 评论 -
SOJ 4116: Chocolate
题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=4116题目大意:给你N块宽度为1、长度不等的巧克力。再给你一个1*L的盒子。问最少放进去多少块巧克力,就使得剩下的巧克力一块都放不进去了。算法:首先枚举没有放进盒子的巧克力中,长度最短的是哪块。也就是说,盒子里的任一个间隔,都不可能大于这块巧原创 2013-08-18 00:01:14 · 925 阅读 · 0 评论 -
HDOJ 4689: Derangement
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4689题目大意:已知1 ~ N 的全排列。给出第 i 位置上的数比i大还是小。求可能的方法数。算法:这个DP有点儿绕。由左向右依次处理,注意只能把已经处理的数填在已经处理的位置上。也就是处理到 i 时只能把数字1 ~ i 填到第1 ~ i 的位原创 2013-08-28 20:49:08 · 1600 阅读 · 2 评论 -
SOJ 4265: story of 206
其实我出这道题的心态还是挺健康的,就是学习了一种很简洁的数位DP方法,想推荐给大家。结果这道题比赛的时候只有三个人开,且最后只有一个过,哭了。。。赛后给开了这道题的三个人都发了标程。然后就没有然后了。。sigh。。。。其实DP还是多有趣的。。。小盆友们要多学习一下啊~~~题目链接:http://cstest.scu.edu.cn/soj/prob原创 2013-04-16 12:49:39 · 1019 阅读 · 0 评论 -
CF 7D: Palindrome Degree
题目链接:http://codeforces.com/contest/7/problem/D题意:“等级”的定义是,若一个长度为len的前缀是回文串,且它的长度为floor(len/2)的前缀和后缀的“等级”为k,则它的等级是k+1。求一个字符串所有前缀的“等级”和。算法:我是用manacher算法求的回文串。manacher算法的介绍很多,比如原创 2013-07-16 01:33:13 · 1830 阅读 · 0 评论 -
HDOJ 3709: Balanced Number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709题目大意:对于一个数,把每一位的数字当作这一位的重量。若在某个数位上放一个支点,力矩能够达到平衡,则称这个数为”平衡数“。如4139就是一个"平衡数",若在3的位置放一个支点,则4*2 + 1*1 = 9 且 9*1 = 9。算法:数位DP的模板大同小异,比如这原创 2013-07-20 14:13:47 · 917 阅读 · 0 评论 -
POJ 2411: Mondriaan's Dream
题目链接:http://poj.org/problem?id=2411题意:用1*2的骨牌填充一个n*m的网格。求方案数。算法:这道题用普通的状态压缩DP的话,打表也可以过。也就是用一个m位二进制数,0表示上一行的这个位置未被覆盖,1表示被覆盖。然后逐行转移。不过我用朴素的状态压缩优化到死的时候,也就知道这题一定有别的解法。先来介绍一种用原创 2013-07-20 19:42:50 · 930 阅读 · 0 评论 -
SOJ 3194: K-th
题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=3194题目大意:求区间第K大数。X小于Y的定义是:X的各数字之和小于Y的个数字之和,或者X的各数字之和等于Y的个数字之和且X的数值小于Y。算法:很明显能看出来这是个数位DP。但这题有点儿绕。我的做法是,先写一个函数用记忆化搜索求[0,x]区间内各数字原创 2013-07-29 14:35:10 · 1117 阅读 · 0 评论 -
HDOJ 4616: Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4616题目大意:有一棵树,每个节点代表一个房间。每个房间里有一定量的礼物,也有可能会有一个陷阱。在树上寻找一条路径,使得其最多经过K个陷阱(注意,小朋友从路径的一端出发,当遇到第K个陷阱的时候就会停止),并使得获得的礼物数最大。算法:树形DP。需要注意的是,如原创 2013-07-29 16:50:16 · 934 阅读 · 0 评论 -
HDOJ 4632: Palindrome subsequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632题目大意:求一个序列中有多少回文子序列。两个子序列只要有一个下标不同就视为不同,无论组成它的字母相不相同。算法:我的算法可能比官方题解要麻烦些。我用d[i][j]表示以s[i],s[j]为中心的回文子序列的数量,注意i,j可能相同。那么假如s[i原创 2013-08-01 19:34:19 · 1089 阅读 · 0 评论 -
HDOJ 4661: Message Passing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4661题目大意:有n个人,每个人知道一个独特的信息。每一次操作,我们可以让一个人把自己知道的所有信息告诉另一个人。要求经过最少次数的操作,可以让所有人知道所有信息。求方案数。算法:显然最好的方法是所有人把消息先告诉同一个人,然后再由这个人把这个消息传给所有人。原创 2013-08-16 01:23:02 · 1128 阅读 · 0 评论 -
CF 314B: Sereja and Periods
由于CF可以看代码的缘故,一般不写CF题解。但是觉得这道题确实比较巧妙,于是记录一下。做这道题时参考了两位神犇的代码:http://codeforces.com/contest/314/submission/3832474http://codeforces.com/contest/314/submission/3845338谢谢!题目链接:http:原创 2013-06-09 01:33:07 · 1773 阅读 · 0 评论 -
HDOJ 4582: DFS spanning tree
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4582题目大意:给出一个有向图。这个图的前n-1条边构成这个图的一个以节点1为根节点的DFS树。T-Simple环的定义是:至多有一条边不在这棵DFS树上的环。问,至少在图上选中多少条边。才使得每个T-simple环都至少有一条边被选中。算法:需注意的是,题目原创 2013-08-12 12:50:36 · 2314 阅读 · 8 评论 -
HDOJ 5094: Maze
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5094题意:现有一个n * md原创 2014-11-09 16:27:46 · 1107 阅读 · 0 评论