动规
_lyl
这个作者很懒,什么都没留下…
展开
-
Uva 10465-Homer Simpson(DP)
题目链接:点击打开链接DAG上的最长路。题意:相当于给两种硬币的面值,每种可以用无限次,问恰好组成S 最多能用多少个硬币。如果不能恰好组成S,输出最大能组成的面值x(x#include #include #include #include #include #include #include #include #include #include #include原创 2014-12-11 18:57:38 · 815 阅读 · 0 评论 -
UVA 674-Coin Change(DP)
题目链接:点击打开链接题意 :有5种硬币的面值,分别为 1 ,5 ,10 ,25 ,50 。。 给出n 问用这些面值的硬币有多少种组成n的方式。(每种硬币无限,使用硬币数也无限)两种做法,母函数比较长,以前也写过就不说了。。第二种做法是DP 设 dp[i] 为组成i 的种类数,初始化dp[0]=1; (有图有真相 题目中原话 :Note that we count that there原创 2014-12-04 14:33:52 · 707 阅读 · 0 评论 -
Uva 10405-Longest Common Subsequence(DP)
题目链接:点击打开链接裸LCS 注意输入可能有空格 #include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 1005#define _ll __int64#d原创 2014-12-03 20:20:09 · 681 阅读 · 0 评论 -
Uva 10003-Cutting Sticks(区间DP)
题目链接:点击打开链接题意: 一根长度为L 的木棒,要求要切割n次,给出n次需要切割的位置,每次切割花费为当前段的总长度。求最小花费。思路:。。一开始想了好久也没往区间DP那方面想QAQ。设 dp[i][j] 为切割[i,j] 区间的最小花费,状态转移方程为 dp[i][j]=max(dp[i][k-1]+dp[k+1][j]+a[j+1]-a[i-1]);#include #inc原创 2014-12-03 23:26:50 · 722 阅读 · 0 评论 -
POJ 1185-炮兵阵地(状压DP)
题目链接:点击打开链接题意 :中文。。就不啰嗦了 大致就是n*m的格子上放置炮兵,相邻两格不能放,求最大放置个数。思路:就是典型的状压啦,dp[i][j][k] 代表当前行状态为s[j],前一行状态状态为 s[k] 时的最大放置个数。状态转移方程可为 dp[i][j][k] =max(dp[i][j][k],dp[i-1][k][p]+sum[j]) (枚举上上行的状态p sum[j]原创 2014-12-03 20:01:31 · 676 阅读 · 0 评论 -
Uva 437-The Tower of Babylon(DP)
题目链接:点击打开链接DAG上最长路、题意:给出n种长方体,(每种无限),要求能摞的最大高度。连边是大的连小的。#include #include #include #include #include #include #include #include #include #include #include #include #include #define原创 2014-12-17 21:02:45 · 794 阅读 · 0 评论 -
POJ 3254-Corn Fields(状压DP)
题目链接:点击打开链接第一发状压。。题意:有一个n*m的牧场,1代表可以放牧,0代表不可以放牧,现在要求总的放牧方案,求中要求相邻的不能放牧(相邻代表上下左右,如果当前格的相邻格已经放牧了,此格就不能放牧了)首先,为什么要状压? 比较容易想到的算法是深搜,从(1,1)搜到(n,m)枚举每个格子放或者不放,统计总方案,但仔细一想这种方法肯定行不同,n和m的范围最大是12*12逐一枚举原创 2014-12-01 14:25:52 · 774 阅读 · 0 评论 -
SDUT 2895-D(记忆化搜索)
题目链接:点击打开链接题意:给出一棵含有n个点的树,每个点权值为wi,求从根节点到叶子结点权值和最大的那条路经的权值和是多少。类似数塔,从顶自底记忆化搜。#include #include #include #include #include #include #include #include #include #include #include #includ原创 2014-12-01 14:02:56 · 783 阅读 · 0 评论 -
HDU 1074-Doing Homework(状压DP)
题目链接:点击打开链接做了好久。。一开始想爆搜就写啊写啊觉着15!的阶乘再怎么剪枝好像也是过不了的。。尤其是爆搜的时候字典序不好处理啊 后来问了飞神是状压DP。。sad当时根本不懂什么叫状压啊题意:有n份家庭作业 给出每一份的期限和完成的该作业需要的时间,求安排完成作业的最优顺序,使得扣分最少(超过期限要扣分)思路:把每份作业的完成情况看出2进制下的状态, 二进制从右到左一次对应作业原创 2014-12-01 16:11:04 · 684 阅读 · 0 评论 -
SDUT 1223-找零钱(DP)
题目链接:点击打开链接还是硬币问题。只不过多了一个限制条件是要求组成n的硬币个数不超过100.考虑dp ,可以在一维的基础上增加一个维度,即设 dp[i][j] 为所用硬币为i个表示j 的种类数 。dp[i][j]=dp[i][j]+dp[i-1][j-v[k]],依旧是枚举硬币种类。#include #include #include #include #include #原创 2014-12-04 14:40:00 · 952 阅读 · 0 评论 -
Uva 111-History Grading(DP/LCS)
题目链接:点击打开链接题意坑。。 本来一看就是就裸LCS ,但题目中给的输入并不是原序列,而是原序列,而是原序列的位置。。比如 3 1 2 并不是 s[1]=3 而是1在序列中位置是3 即 s[3]=1; (s[x]=i;)然后输入处理一下就裸LCS。#include #include #include #include #include #include #include原创 2014-12-04 15:37:51 · 825 阅读 · 0 评论 -
POJ 3661-Running(DP)
题目链接:点击打开链接题意: 在一条直线上运动,每分钟可以运动距离a[i] ,每分钟可以选择运动或者休息,有一个疲劳系数,最初为0,每运动一分钟疲劳系数加1,(不能大于m) 同理,每休息一分钟,疲劳系数减1,(不能小于0)求n分钟后最大运动距离,要求n分钟时疲劳系数要为0.两个状态,当前时间及当前疲劳系数。设 dp[i][j] =dp[i-1][j-1]+a[i] (j>0) else原创 2014-12-04 18:20:17 · 711 阅读 · 0 评论 -
Uva 642-CD(0-1背包+打印路径)
题目链接:点击打开链接裸01背包 ,此题中 价值即体积... 打印路径。。不多说了 一维的没看懂。。上个二维的#include #include #include #include #include #include #include #include #include #include #include #include #include #define max原创 2014-12-10 19:10:42 · 811 阅读 · 0 评论 -
Uva 10130-SuperSale(0-1背包)
题目链接:点击打开链接裸的0-1背包 。。只不过相当于有多个背包,因为这些背包互相独立,求和相加就ok#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 10原创 2014-12-10 19:13:47 · 673 阅读 · 0 评论 -
Uva 103-Stacking Boxes(DP/矩形嵌套)
题目链接:点击打开链接lrj白书第九章例题。。DAG上的最长路。。矩形嵌套 , 一个n维的矩形, a可以套在b内的条件是 a存在一个全排列 #include #include #include #include #include #include #include #include #include #include #include #include #原创 2014-12-10 18:28:07 · 819 阅读 · 0 评论 -
Uva 10131-Is Bigger Smarter?(DP)
题目链接:点击打开链接DAG(有向无环图)上的最长路+打印路径建图很简单,对于两点 a b, 能够由a到b的条件是w[a]s[b] 注意是有向图。设dp[i] 为以i为起点的最长路的长度,dp[i]= max(dp[i],dp[j]+1) 枚举j (j是和i相连的点) #include #include #include #include #include #inclu原创 2014-12-09 19:06:34 · 697 阅读 · 0 评论 -
Uva 562-Dividing coins(DP)
题目链接:点击打开链接题意:n个硬币,给出每个硬币的价值,要求把这些硬币分成两组,使得两组的价值差尽量小。可以发现如果可以平分,那么价值差肯定为0,那么依次从sum/2 --> 0 枚举i,如果用上述硬币的价值组合可以组成i 那么sum-i-i就是答案。如何判断是否对于一个数i用这些硬币可以凑出来,用背包判就可以了,注意是01背包。#include #include #includ原创 2014-12-09 14:36:03 · 644 阅读 · 0 评论 -
POJ 3311-Hie with the Pie(最短路+状压DP)
题目链接:点击打开链接题意:大致就是邮递员要从0号 送快件,一共有n个地方,要求从0开始走完所有的节点在回到0的最短路径。先用Floyd跑出来最短路,然后就是一个裸TSP问题了TSP:顾名思义,旅行商问题,就是从起点出发遍历n个城市在回到起点的最短路径,在n比较小的情况下状压是个比较好的办法,二进制0代表没访问该城市,反之亦然。所以一共有 2^n-1种状态, 设 dp[s][i] 代表当前原创 2014-12-06 20:29:21 · 909 阅读 · 0 评论 -
Uva 10192&10066-(DP)
题目链接:点击打开链接 点击打开链接两道都是LCS。。裸 水过10192:#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 1005#define原创 2014-12-05 20:08:47 · 634 阅读 · 0 评论 -
Uva 147-Dollars(DP)
题目链接:点击打开链接换硬币问题。不过存在分,所以是小数输入,一开始因为精度问题wa一发。而且。。计数用long long。。#include #include #include #include #include #include #include #include #include #include #include #include #include #de原创 2014-12-05 19:46:53 · 794 阅读 · 0 评论 -
POJ 1080-Human Gene Functions(DP)
Human Gene FunctionsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17300 Accepted: 9617DescriptionIt is well known that a human gene can be considered原创 2014-11-21 20:33:20 · 784 阅读 · 0 评论 -
区间DP(初步了解)
区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优值。设F[i,j](1最小区间F[i,i]=0(一个数字无法合并,∴代价为0)每次用变量k(iFor p:=1 to n do // p是区间长度,作为阶段。原创 2014-11-02 17:14:56 · 1474 阅读 · 0 评论 -
POJ 3356-AGTC(区间DP)
AGTCTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10225 Accepted: 3949DescriptionLet x and y be two strings over some finite alphabet A. We would like原创 2014-11-04 13:40:12 · 707 阅读 · 0 评论 -
HDU 1176-免费馅饼(DP_逆推)
免费馅饼Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26290 Accepted Submission(s): 8952Problem Description都说天上不会掉馅饼,但有一天gamebo原创 2014-10-29 22:50:12 · 854 阅读 · 0 评论 -
SDUT 2403-单峰序列(DP)
单峰序列Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述明明最近遇到一个数学问题:给定n个数字(A1,A2,A3......An),每个数字均是小于2^31的正整数,现需要知道这n个数字中的最长单峰子序列长度是多少。所谓单峰序列是指满足如下条件之一的子序列:(1)Ak1(2)A原创 2014-11-13 15:22:38 · 1852 阅读 · 0 评论 -
POJ 2955-Brackets(区间DP)
BracketsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3340 Accepted: 1716DescriptionWe give the following inductive definition of a “regular bracket原创 2014-11-08 22:48:52 · 712 阅读 · 0 评论 -
HDU 5074-Hatsune Miku(DP)
Hatsune MikuTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 29 Accepted Submission(s): 25Problem DescriptionHatsune Miku is原创 2014-10-22 19:09:01 · 1180 阅读 · 0 评论 -
艺术联合社(dp)
这个是校赛的时候的一道题目,过了那么久了才做出来orz...原创 2014-06-29 10:53:04 · 867 阅读 · 0 评论 -
数字三角形问题(DP)
数字三角形问题Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。输入输入数据的原创 2014-06-17 22:07:38 · 897 阅读 · 0 评论 -
最长上升子序列(DP)
最长上升子序列Time Limit: 3000ms Memory limit: 65536K 有疑问?点这里^_^题目描述一个数的序列bi,当b1 2 S的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1<= i1 2 K 你的任务,就是原创 2014-07-02 16:59:04 · 1057 阅读 · 0 评论 -
HDU--Max sum(DP)
Max SumTime Limit: 2000ms Memory limit: 32768K 有疑问?点这里^_^题目描述Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-原创 2014-07-06 13:58:24 · 793 阅读 · 0 评论 -
POJ 2533-Longest Ordered Subsequence(DP)
Longest Ordered SubsequenceTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 34454 Accepted: 15135DescriptionA numeric sequence of ai is ordered if a1 a2原创 2014-11-16 18:27:55 · 723 阅读 · 0 评论 -
POJ 3071-Football(概率dp)
FootballTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3145 Accepted: 1591DescriptionConsider a single-elimination football tournament involving 2n t原创 2014-10-13 20:18:23 · 874 阅读 · 0 评论 -
POJ 3267-The Cow Lexicon(DP)
The Cow LexiconTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 8252 Accepted: 3888DescriptionFew know that the cows have their own dictionary with W (1原创 2014-11-16 15:53:03 · 744 阅读 · 0 评论 -
SDUT 1225-编辑距离(串型dp)
编辑距离Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述假设字符串的基本操作仅为:删除一个字符、插入一个字符和将一个字符修改成另一个字符这三种操作。 我们把进行了一次上述三种操作的任意一种操作称为进行了一步字符基本操作。下面我们定义两个字符串的编辑距离:对于两个字符串a和b,通原创 2014-10-23 21:23:33 · 736 阅读 · 0 评论 -
SDUT 2893-B(DP || 记忆化搜索)
BTime Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述有n块地板排成一条直线,从左到右编号为1,2,3. . . n-1,n,每块地板上有一个权值w。现在要小B用这n块地板玩一个游戏。小B可以选择任意一块地板作为起点,然后向右跳K次,每次最多可以跳5个格子(设起跳点地板编号为x,落地点原创 2014-11-02 15:04:25 · 897 阅读 · 0 评论 -
POJ 1260-Pearls(DP)
PearlsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 7465 Accepted: 3695DescriptionIn Pearlania everybody is fond of pearls. One company, called The Ro原创 2014-11-19 23:37:51 · 1351 阅读 · 0 评论 -
POJ 1458-Common Subsequence(线性dp/LCS)
Common SubsequenceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 39009 Accepted: 15713DescriptionA subsequence of a given sequence is the given sequenc原创 2014-10-13 11:41:36 · 1252 阅读 · 0 评论 -
POJ 1159-Palindrome(DP/LCS变形)
PalindromeTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 53770 Accepted: 18570DescriptionA palindrome is a symmetrical string, that is, a string read i原创 2014-11-16 19:30:32 · 906 阅读 · 0 评论 -
POJ 2479-Maximum sum(线性dp)
Maximum sumTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 33918 Accepted: 10504DescriptionGiven a set of n integers: A={a1, a2,..., an}, we define a fu原创 2014-10-13 11:06:48 · 845 阅读 · 0 评论