
dp动态规划
文章平均质量分 70
Rest
这个作者很懒,什么都没留下…
展开
-
poj 1013 great equipment(背包,dp)
A - Great EquipmentTime Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluSubmit StatusDescriptionOnce upon a time, there lived Catherine Ironfist, the Queen of Enro原创 2013-05-15 01:20:42 · 1318 阅读 · 0 评论 -
1039. Anniversary Party (dp)
树DP经典问题,公司聚会,下属和直属上司不能共存,给出每个人的快乐值,再给出每个人的编号和他的上司,选出一些人参加聚会使快乐值最大/*从叶子开始选择,每个节点只有选不和不选两种可能,dp[rt][0],dp[rt][1]分别表示选和不选该节点dp[rt][1]=sum{ dp[son][0] }+val[rt] , 因为跟选了它的儿子就全部不能选dp[rt][0转载 2013-08-05 09:49:57 · 758 阅读 · 0 评论 -
ural 1029. Ministry (dp)
Mr. F. wants to get a document be signed by a minister. A minister signs a document only if it is approved by his ministry. The ministry is an M-floor building with floors numbered from 1 to M, 1A转载 2013-08-05 09:38:09 · 977 阅读 · 0 评论 -
sicily 1345. 能量项链(dp)
http://soj.me/1345类似矩阵连乘。/*dp,n颗珠子,求最后剩下一颗珠子能放出最大能量d[i][j]表示第i颗珠子开始,长度为j的珠子所释放的最大能量转移方程:d[i][j] = max(d[i][j] ,d[i][k]+d[x][j-k] + node[i].head * node[x].head * node[y].rear) ; 其中1<=i<=n转载 2013-06-04 11:05:20 · 1700 阅读 · 0 评论 -
ural 1203. Scientific Conference(dp)给定N个区间,求最大的不相交的区间数
给定N个区间,求最大的不相交的区间数//动态规划,递推公式:f[i] = max(f[i-1],f[g[i]-1]+1);//f[i]表示时间0~i最多所能听的报告数,g[i]表示所有以时间 i 结束的报告中,最晚的开始时间。#include #include #include #include #include #include using namespace std;c原创 2013-07-23 14:20:42 · 1821 阅读 · 0 评论 -
ural 1017. Staircases(dp)
1017. StaircasesTime limit: 1.0 secondMemory limit: 64 MBOne curious child has a set of N little bricks (5 ≤ N ≤ 500). From these bricks he builds different staircases. Staircase consists转载 2013-07-29 11:48:24 · 879 阅读 · 0 评论 -
Ural 1018 Binary Apple Tree(树形dp)
题意:一棵二叉苹果树,每个树枝上都有苹果,求剪枝后剩下Q根树枝的时候的最大苹果数量。(剪枝的时候不能连根拔起)思路:TreeDP。先由题给出的关系建立一棵二叉树,把边上的苹果移动到子结点,然后对树进行自底而上的DP,状态转移方程式为:f[root][j]=max(f[root.lc][i]+f[root.rc][j-1-i])+val[root],maxx);意思就是说当根root要保留j个点转载 2013-07-29 13:39:16 · 1001 阅读 · 0 评论 -
Sicily 1874. Three little pigs (dp+高精)
Jasison君大神什么的~N只不同的小猪分配到M所相同的房子,问有多少种方法(每所房子至少要有一只小猪)思路:对于F[n][m],对第n只小猪单独考虑,有两种情况:1)前n-1只小猪在m-1所房子里面,第n只小猪单独一个房子2)前n-1只小猪在m所房子里面,第n只小猪在任意一个房子里面于是F[n][m] = F[n-1][m-1] + m*F[n-1][m]初始条转载 2013-01-30 13:07:36 · 956 阅读 · 5 评论 -
Ural 1260. A nudnik photographer(dp)
题目:对1到N这些数进行排列,1在最左边,相邻的两个数之差不能超过2,求有多少种排列方法?解法:dp[i] = dp[i-1] + dp[i-3] + 1;解释:对dp[n],有3种情况:1、12……(dp[n-1])2、1324……(dp[n-3])3、1357……8642(一种确定的情况)代码:#include using namespace std;int原创 2013-07-30 11:00:11 · 900 阅读 · 0 评论 -
1081. Binary Lexicographic Sequence(dp)
题意:给出一个串的长度n,串只有0,1组成,但是不能有两个相邻的1。按字典序给串排列,最先肯定是0000,接着是0001,依此类推。给一个数字m,输出在长度为n的情况下,第m个排列的串是什么,如果m大于总排列数,输出-1思路:递推。首先,计算满足条件的N位序列的总个数。设为f[n]f[n]=f[n-1]+f[n-2]可是这样理解:长度为N的序列对应于:1.长度为N-原创 2013-07-31 09:32:54 · 893 阅读 · 0 评论 -
ural 1586. Threeprime Numbers
题意:定义这样一种数:Threeprime,指对于它的任意连续3位上的数字,都构成一个3位的质数。求对于一个n位数,存在多少个Threeprime数。读入一行,一个整数n(3输出一行,即总数mod 10^9+9。解法:记录[100, 1000)范围内的所有的素数(是素数的每一位)。然后从n = 4往后,定义dp[i][x2][x3], i表示到第i位时,第i-1位为x2原创 2013-08-06 14:00:07 · 1080 阅读 · 0 评论