DP
aozil_yang
这个作者很懒,什么都没留下…
展开
-
HDU 1114 Piggy-Bank (完全背包)
Piggy-BankTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18377 Accepted Submission(s): 9279Problem DescriptionBefore ACM can原创 2016-03-16 18:32:36 · 414 阅读 · 0 评论 -
POJ 2229 Sumsets(dp)
SumsetsTime Limit: 2000MS Memory Limit: 200000KTotal Submissions: 15575 Accepted: 6202DescriptionFarmer John commanded his cows to search for different sets of nu原创 2016-03-17 15:47:18 · 349 阅读 · 0 评论 -
UVA 12034 Race 赛马名次
给你n个马,问赛马名次的可能性!这个题了解了下动态规划!思路递推:dp[i][j]表示i匹马时候,名次为j的结果!dp[ i] [j]可能来自两种情况!首先肯定是来自i - 1 上匹马, 两种情况:1.名次并列,则j名次可以放置j个位置! 是dp[i-1][j-1] * j2.名次增加了1,则j-1名共有j个位置可以放置,依旧是 dp[i-1][j] * j.原创 2016-03-09 22:55:14 · 571 阅读 · 0 评论 -
HDU 1503 Advanced Fruits
Advanced FruitsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2369 Accepted Submission(s): 1210Special JudgeProblem Description原创 2016-03-13 09:42:22 · 426 阅读 · 0 评论 -
HDU 2602 Bone Collector (01背包)
Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 45368 Accepted Submission(s): 18878Problem DescriptionMany year原创 2016-03-13 10:17:10 · 347 阅读 · 0 评论 -
HDU 2546 饭卡 (01背包)
饭卡Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 19171 Accepted Submission(s): 6697Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即原创 2016-03-14 16:19:54 · 347 阅读 · 0 评论 -
HDU 4487 Maximum Random Walk (概率DP)
Maximum Random WalkTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 505 Accepted Submission(s): 279Problem DescriptionConsider原创 2016-04-12 00:40:06 · 591 阅读 · 0 评论 -
POJ 3071 Football (概率DP)
FootballTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4344 Accepted: 2220DescriptionConsider a single-elimination football tournament involving 2n t原创 2016-04-12 17:13:13 · 1989 阅读 · 0 评论 -
HDU 4489 The King’s Ups and Downs (DP)
The King’s Ups and DownsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 442 Accepted Submission(s): 298Problem DescriptionThe原创 2016-04-09 16:18:01 · 474 阅读 · 0 评论 -
习题9-1 UVA 10285 Longest Run on a Snowboard 最长滑雪路径(记忆话搜索)
大体题意:给你一个n × m 的整数矩阵,让你随意选择一个起点,使得走出一条最长的严格递减路来! 输出最短路的长度!思路:写整体的话,肯定是先遍历起点,然后交给一个叫dfs的函数来处理(- -!)最后不断更新最大值即可!dfs(i,j)表示从i,j 出发的最短路长度!因为是记忆话搜索,所以发现dp[i][j] >= 0直接return dp[i][j];然后就是原创 2016-04-30 19:22:14 · 626 阅读 · 0 评论 -
例题9-1 UVA - 1025 A Spy in the Metro 城市里的间谍(DP)
题意不说了 书中说的很详细:思路:影响到决策的只有当前时间和所处的车站!用dp[i][j]表示时刻i,你在车站j,最少还需要等待的时间有三种决策:1.等一分钟!2.如果有向右的车,则搭乘向右的车!3.如果有向左的车,则搭乘向左的车!在输入m1和m2时就处理has_train 数组,has_train[i][j][0]表示有向左的车,1 表示有向右的车!则倒原创 2016-05-01 23:23:42 · 530 阅读 · 0 评论 -
HDU 1864 最大报销额 (dp 01背包)
最大报销额Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21586 Accepted Submission(s): 6497Problem Description现有一笔经费可以报销一定额度的发票。允许报销的原创 2016-05-26 02:57:49 · 388 阅读 · 0 评论 -
习题10-5 UVA - 1213 Sum of Different Primes 不同的素数之和(DP + 素数打表)
大体题意:选择K个质数,使他们的和等于N ,问有多少种选法!思路:N不大 小于等于1120直接打一个素数表,然后dpdp[i][j] 表示 选择j 个素数 构成i 方法数。三层循环 第一层直接枚举素数, 第二层枚举选择的数量,第三层枚举构成的结果N。#include#include#include#includeusing namespace std;原创 2016-05-30 18:51:40 · 372 阅读 · 0 评论 -
HDU 4165 Pills (DP卡特兰数列)
PillsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1297 Accepted Submission(s): 902Problem DescriptionAunt Lizzie takes half a原创 2016-05-07 17:18:31 · 1129 阅读 · 0 评论 -
HDU 1003 Max Sum (入门DP[1] 最大连续子序列)
Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 210999 Accepted Submission(s): 49522Problem DescriptionGiven a sequence a[原创 2016-06-07 15:59:30 · 439 阅读 · 0 评论 -
Codeforces Round #358 (Div. 2) -- D. Alyona and Strings (DP)
D. Alyona and Stringstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAfter returned from forest, Alyona started read原创 2016-07-09 12:29:42 · 367 阅读 · 0 评论 -
Codeforces Round #245 (Div. 1) -- B. Working out (DP)
B. Working outtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSummer is coming! It's time for Iahub and Ia原创 2016-07-24 18:13:50 · 475 阅读 · 0 评论 -
Codeforces Round #301 (Div. 2) -- D. Bad Luck Island (概率DP)
D. Bad Luck Islandtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe Bad Luck Island is inhabited by thre原创 2016-07-25 10:50:08 · 385 阅读 · 0 评论 -
例题10-13 UVA - 580 Critical Mass 危险的组合(递推)
题意不说了,题意很简单!思路:看了书上的分析,感觉有增进了不少= = !注:文中出现的POW(n)都是2的n次方的意思!排列是按照最先出现连续的U的最左边位置枚举的!假定最先出现的连续的U 是从位置i 开始的,那么i,i+1,i+2一定是U ,后面连续不连续不一定了,可能连续也可能不连续!那么前i-1个位置必然不会出现连续的3个U,假定f(n)表示有n 个箱子时的答原创 2016-07-05 16:36:37 · 672 阅读 · 0 评论 -
Codeforces Round #360 (Div. 2) -- E. The Values You Can Make (DP)
E. The Values You Can Maketime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPari wants to buy an expensive chocolate f原创 2016-07-06 01:22:00 · 840 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) -- D. Ilya and Escalator(概率DP)
D. Ilya and Escalatortime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIlya got tired of sports programming, left univ原创 2016-07-07 10:18:32 · 371 阅读 · 0 评论 -
HDU 3366 Passage (概率DP)
PassageTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 465 Accepted Submission(s): 218Problem DescriptionBill is a millionaire. B原创 2016-07-29 22:12:43 · 485 阅读 · 0 评论 -
HDU 3689 Infinite monkey theorem (KMP + 概率DP)
Infinite monkey theoremTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1592 Accepted Submission(s): 826Problem DescriptionCould原创 2016-08-03 23:05:53 · 539 阅读 · 0 评论 -
UVALive 7365 Composition (DP)
大体题意:告诉你n,表示你要处理第n 个式子,第n 个式子中有n 因子 分别是1,2,3,,,,n。要求这些因子的和等于n,所以第n个式子 就有2^(n-1)个因子组合!告诉你一些因子不能用,求解剩余的因子式子有多少个!思路:比赛时没有做出来,赛后看学长写的好简单,!!令dp[i]就是第i 项方程的答案,第i 项方程有i个因子,直接枚举这i 个因子,如果第j 个能用的话原创 2016-08-16 02:19:53 · 403 阅读 · 0 评论 -
HDU 3664 Permutation Counting (DP)
Permutation CountingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1633 Accepted Submission(s): 845Problem DescriptionGiven a原创 2016-08-16 19:29:33 · 327 阅读 · 0 评论 -
HDU 3236 Gift Hunting (01背包变型)
Gift HuntingTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1640 Accepted Submission(s): 546Problem DescriptionAfter winning tw原创 2016-08-05 20:29:51 · 433 阅读 · 0 评论 -
HDU 4597 Play Game (DP 记忆话搜索)
Play GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1456 Accepted Submission(s): 826Problem DescriptionAlice and Bob are pla原创 2016-08-03 01:02:35 · 286 阅读 · 0 评论 -
HDU 5807 Keep In Touch (分步DP)
Keep In TouchTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)Total Submission(s): 324 Accepted Submission(s): 134Problem DescriptionThere are n原创 2016-08-08 11:18:24 · 496 阅读 · 0 评论 -
UVALive 6624 Card Trick (概率DP)
大体题意:一副扑克牌游戏,你要掀n个扑克牌,每个扑克牌上面有数值大小,这个数值大小x代表你要往后走x步,走到最后一个步就不走了!另一个人也要玩这个游戏,他的起点是1到10随意挑选一个! 除了第一个翻得牌知道以外,其余都不知道,求第二个人最后的终点和第一个人的终点一样的概率!思路:只有13个牌,2~11, A是11,J Q K 10是10 ,因此翻牌是10的概率是 4/13, 其原创 2016-08-21 00:09:06 · 572 阅读 · 1 评论 -
UVALive 6625 Diagrams & Tableaux (状态压缩DP)
大体题意:给你许多盒子,每一行的盒子肯定不能超过上一行的盒子,你要向盒子上放数字,多于每一列来说每一行的数字要严格大于上一行的数字,对于每一行来说,每一列的数字要大于等于上一列的数字!问最终的方案数?思路:比赛没有做出来 一看最多7*7的,果断dfs + 剪枝了 还是超时! 区域赛的题思路不对果断过不去啊! 因为每一列数字都是严格递增的,没有重复,因此可以用二进制数集来代原创 2016-08-21 14:28:40 · 775 阅读 · 0 评论 -
Educational Codeforces Round 16 -- E. Generate a String (DP)
大体题意:一开始你有一个空的字符串,你要得到n 个‘a’字符, 你插入或者删除一个‘a’需要x秒,复制目前的字符串需要y秒,求最少多少秒!思路:赛后补得,没有时间做了= =!dp思想,令dp[i]表示第i 个‘a’字符至少需要多少秒!首先dp[1]肯定是x秒, 一开始只能插入一个字符‘a’!然后后面的 如果i 是偶数,那么首先这个字符串可以由复制得来! dp[i] =原创 2016-08-23 11:45:48 · 650 阅读 · 2 评论 -
Codeforces Round #369 (Div. 2) -- C. Coloring Trees (三维DP)
大体题意:给你n 个树,你要给这些树染色, 标号是0 表示这棵树还没有染色,标号不是0 表示这棵树已经染色 不需要再染,这片树的美丽程度是 连续相同颜色的数目!告诉你指定美丽程度K,和 最多的颜色种类m ,求得最小花费,每一棵树染不同颜色的花费也告诉了你!思路:显然dp,直接三维即可!不会超时!令dp[i][j][k]表示当前处理第i 个树, j 表示哪一个颜色,k 表原创 2016-09-02 23:32:56 · 576 阅读 · 0 评论 -
UVALive - 4256 || LA 4256 Salesmen 商人(DP)
大体题意:给你一个包含n个结点无向图,在给你一串序列,最终的目的是让这一串序列 任意相邻的两个数在无向图中能直接相连,或者这两个数相同!求最少改变几个数?思路:DP:令dp[i][j]表示 当前走到序列的 第i 个位置, 序列的值为j 的最少修改数!那么在处理时 我们找出与j 相邻的数 (或者相等)的k ,dp[i][j] = min(dp[i][j],dp[i-1][原创 2016-09-04 15:57:14 · 335 阅读 · 0 评论 -
UVALive - 3882 And Then There Was One (递推[dp])
大体题意:给你一个由n 个数(1~n)组成的圆环,刚开始删除m,以后每数k 个数删除一个数,求最后剩下哪个数?思路:这个题数据量比较大,什么数组模拟,链表模拟, 都会超时!这个题目不就是猴子选大王吗= =!看了看相关约瑟夫问题的讲解,感觉很巧妙!简单记录一下:有这么一类问题:给你1~n 的圆环,你从1报数,报到m 停止删除这个数,继续报,求最后的人?因为涉及到取余问原创 2016-09-05 21:21:39 · 468 阅读 · 0 评论 -
HDU 5900 QSC and Master (区间DP 记忆化搜索)
大体题意:给你n 个数,你可以删除两个数,这两个数必须相邻,而且他们gcd 不是1,删除之后你的sum += 他们的权值,求最大权值!思路:比赛队友做的,现在补一补:区间DP记忆化搜索:如果一个区间[x,y] x >= y 则肯定是0。如果x + 1 == y 这是边界情况,则要看这两个数是否互质,不互质的话就返回权值之和,否则 返回0。否则 如果两个端点 不原创 2016-09-20 00:27:05 · 419 阅读 · 0 评论 -
CCF习题 201312-4 有趣的数 (DP)
题意不说了,中文的题意!= =!思路:DP思想!可以这么想,设计一个二维的dp[i][j],i表示当前填第i个数,此时为第j 个状态!第一维不用说,说说第二维!总共有四个数0,1,2,3,那么当前该填i个数时,此时已经填了一些数,还剩下没填的数,这个填了的数的集合就是状态!0,1,2,3的四个数总共子集有0,1,2,3,01,02,03,12,13,23,012,013,0原创 2016-09-07 00:19:26 · 598 阅读 · 0 评论 -
例题9-8 UVA 1625 Color Length(DP)
思路:令dp[i][j],表示第一个字符串走到i 位置,第二个位置走到j位置,当前的最小费用!那么直接双重循环进行转移即可!如果i 不等于0,那么可以有dp[i][j] = min(dp[i-1][j] + c[i-1][j])如果j 不等于0,那么可以有dp[i][j] = min(dp[i][j-1] + c[i][j-1])其中 c[i][j]表示 字符串1 走到i原创 2016-10-09 17:40:50 · 271 阅读 · 0 评论 -
最优矩阵链乘(动态规划dp)POJ 1651 Multiplication Puzzle
大体题意:一个n*m的矩阵由n行m列共n*m排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个n*m的矩阵乘m*p的矩阵,运算量为n*m*p。矩阵乘法不满足分配律,但满足结合律。因此A*B*C既可以按顺序(A*B)*C也可以按A*(B*C)来进行。假设A、B、C分别是2*3、3*4、4*5的,则(A*B)*C运算量是2*3*4+2*4*5=64,A*(B*C)的运算原创 2016-10-09 20:18:11 · 1646 阅读 · 0 评论 -
例题9-9 UVA 10003 Cutting Sticks 切木棍(最优三角剖分 || 区间dp )
大体题意:给你一个长度为L 的木棍,木棍上有n(n 思路:用a[i] 记录第i 个结点的位置!并把a[0] = 0,a[n+1] = L,这样做就可以处理边界情况了!写个dp(i,j)函数记忆话搜索!因为i j 之间必须有东西才可以处理嘛,所以直接判断i >= j-1的话,直接return 0;因为是记忆话搜索 所以 如果d[i][j]如果不为-1的话 直接retu原创 2016-04-30 19:07:58 · 577 阅读 · 0 评论 -
例题9-10 UVA 1626 Brackets sequence (dp递推 || 记忆化搜索)
大体题意:括号匹配问题,要求添加尽可能少的括号使得括号匹配 ,其中空括号 是匹配的,括号有[]和()两种!思路:dp思想:令dp[i][j]表示字符串i位置到j位置 最少添加的括号数量!两种方法 递推和 记忆化搜索思路是一样的,说下整体思路:如果i和j 这两个位置能匹配的话,那么转移就是ans = min {dp[i+1][j-1]}然后在类似于最优三角剖分的方法,原创 2016-10-09 22:44:53 · 469 阅读 · 0 评论