动态规划
yqdjl6
这个作者很懒,什么都没留下…
展开
-
动态规划之01背包
有n件物品,每种只有一个,第i种物品的体积是Vi, 重量为Wi,选择一些物品装到一个容量为C的背包中,使得背包体积在不超过C的前提下重量尽量大这是最基础的动态规划的问题,这类问题最重要的就是要找到状态转移方程。这里我们可以引用“阶段”的概念,也就是我们的每一次决策都是放在前一次决策的基础上,比如决定第i个物品是否要放入背包,就要在前i次决策的基础上进行比较。 我们再来看一下这个背包的状态转移方程:原创 2017-08-07 18:51:11 · 254 阅读 · 0 评论 -
Hdu 1505 City Game
City GameProblem Description Bob is a strategy game programming specialist. In his new city building game the gaming environment is as follows: a city is built up by areas, in which there are streets,原创 2017-08-29 18:02:55 · 296 阅读 · 0 评论 -
Hdu 2602 Bone Collector
Bone CollectorProblem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went原创 2017-08-29 18:58:48 · 202 阅读 · 0 评论 -
Hdu 1058 Humble Numbers
Humble NumbersProblem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, … show原创 2017-08-29 19:07:35 · 216 阅读 · 0 评论 -
Hdu 1789 Doing Homework again
Doing Homework againProblem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If原创 2017-08-29 19:20:00 · 232 阅读 · 0 评论 -
Hdu 2059 龟兔赛跑
龟兔赛跑Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。 最近正值HDU举办50周年校庆,社会各大名流齐聚下沙,兔子也趁此机会向乌龟发起挑战。虽然乌龟深原创 2017-08-30 13:40:24 · 201 阅读 · 0 评论 -
Hdu 1158 Employment Planning
Employment PlanningProblem Description A project manager wants to determine the number of the workers needed in every month. He does know the minimal number of the workers needed in each month. When h原创 2017-08-30 13:44:04 · 408 阅读 · 0 评论 -
多重背包二进制优化 && Hdu 1059
多重背包有时候遇到大数据的时候是特别慢的,我们这是可以用二进制进行优化,简单的来说,就是假如说有10个价值为2,重量为3的物品,我们可以简化成1个价值为2,重量为3,一个价值为4,重量为6,一个价值为8,重量为12,一个价值为6,重量为9的物品,其实也就相当于把10分成了1,2,4,3的状态,然后进行01背包的计算,因为这四个状态可以组合成从1到10的所有状态,在大数据的时候优化效果明显,附上我的板原创 2017-08-30 23:22:24 · 207 阅读 · 0 评论 -
Hdu 1080 Human Gene Functions(DP)
Human Gene FunctionsProblem Description It is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Bi原创 2017-08-31 13:38:27 · 233 阅读 · 0 评论 -
Hdu 1074Doing Homework(状压DP)
Doing HomeworkProblem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignat原创 2017-09-18 13:13:15 · 496 阅读 · 0 评论 -
最长上升子序列问题(LIS)
LIS是动态规划中的一个经典问题,意思是给你一段序列,让你从中按顺序求一个间断的最长的上升子序列 这里有两种方法,一种是复杂度为O(n^2)的方法: 每次选取一个点为终点,我们计算以这个点为终点的最长的长度:#include<bits/stdc++.h>using namespace std;const int maxn=1e3+5;int ans[maxn],dp[maxn];int原创 2017-08-28 21:41:04 · 353 阅读 · 0 评论 -
POJ 2342 Anniversary party(树形DP)
Anniversary partyDescriptionThere is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the sup原创 2017-09-12 16:31:50 · 270 阅读 · 0 评论 -
codevs 3639树的重心
板子题:#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int n;vector<int>E[maxn],ans;int sz[maxn],minsz=maxn;void dfs(int x,int fa) { sz[x]=1; int maxchild=0; ...原创 2018-10-07 20:46:04 · 188 阅读 · 0 评论 -
hdu3555数位dp
数位dp裸题,好久没写数位dp了,回想了一下怎么写,当成个板子也行#include&lt;bits/stdc++.h&gt;using namespace std;using LL =int64_t;LL dp[20][3],cnt[20];LL dfs(LL len,int pos,bool flag) { if(len&lt;0) { if(pos==2) ...原创 2018-10-23 16:48:58 · 139 阅读 · 0 评论 -
zoj 3494 AC自动机+数位DP
这道题说实话我到现在也不能完整的把这份代码写出来,大部分都是抄kuangbin博客里的那份代码,其实这份代码让我让我一个人看我差不多能看懂,但让我写我感觉我根本写不了,首先我们对模式串建一个AC自动机,然后构造出来一些不可达的点,再写成一个矩阵bcd[i][j]表示在AC自动机上第i个点加上j后能到达的点,j是十进制,从0到9,然后再在bcd[i][j]上跑数位DP,我还回头写了两道数位DP想了想...原创 2018-10-24 17:02:31 · 187 阅读 · 0 评论 -
Hdu 1506 Largest Rectangle in a Histogram
Largest Rectangle in a HistogramProblem Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different原创 2017-08-29 17:57:54 · 295 阅读 · 0 评论 -
Hdu 1231 最大连续子序列
最大连续子序列Problem Description 给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为原创 2017-08-29 17:38:29 · 241 阅读 · 0 评论 -
Hdu 1864 最大报销额(DP)
最大报销额Problem Description 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。Input 测试输入包含若干测试用例。每个测试用例的第1行包含两个正数 Q 和 N,其原创 2017-08-29 17:35:33 · 260 阅读 · 0 评论 -
动态规划之完全背包
完全背包和01背包的区别是01背包的物品只能使用一次,而完全背包可以使用无限多次。 这里同样,我们最重要的就是找到状态转移方程,前面讲的01背包用滚动数组优化是强调了必须用后序遍历,是因为如果我们用前序遍历的话,就不能保证你的操作都是在上一个决策层的基础上。#include<bits/stdc++.h>using namespace std;int main(){ int N,V;原创 2017-08-07 19:25:32 · 178 阅读 · 0 评论 -
动态规划之混合背包
将三种背包混合起来就是混合背包:#include<bits/stdc++.h>using namespace std;const int maxn=1e4;const int INF=0x3f3f3f3f;int dp[maxn][maxn];int main(){ ios::sync_with_stdio(0); cin.tie(0); int N,V;原创 2017-08-07 20:14:39 · 449 阅读 · 0 评论 -
动态规划之多重背包
前面讲了有一个或者有无穷个的,现在说一说有限个,有限个就相当于多个01背包加起来就好了#include<bits/stdc++.h>using namespace std;int main(){ int N,V; cin>>N>>V; vector<int>weight(1000,0),value(1000,0),num(1000,0),dp[1000]; fo原创 2017-08-07 19:41:40 · 203 阅读 · 0 评论 -
算法导论-动态规划-钢条切割
这几天一直在看动态规划的问题,看了看也没想象中那么难,但需要好好的分析一下问题,我们就拿算法导论的钢条切割问题好好理解一下,钢条切割问题就是给你一段钢条,让你把钢条切割成好多份,因为每一段钢条都有不同的价值,我们要找到最优的切割方案,使切割成的钢条价值最大。 这道题我们可以用DFS直接搜索,对每个状态进行递归搜索找到最优解,而用DFS时我们会遍历到许多曾经计算过的点,所以它的复杂度会随着点的增加呈原创 2017-08-11 19:20:40 · 387 阅读 · 0 评论 -
Hdu 1978 How many ways(dp)
How many waysProblem Description 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下: 1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。 3.机器人不能在原地停留。 4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只原创 2017-08-21 02:57:29 · 221 阅读 · 0 评论 -
动态规划之最长公共子序列(LCS)
最长公共子序列是一个特别常见的动态规划问题,题目的意思是给定两个字符串X,Y,让你求一个字符串Z,使C中的每个字符即属于X,又属于Y,且字符在Z中的顺序必须和X,Y中的顺序是一样的,(这里区分子序列和子串的概念:子序列是不连续的,子串是连续的)举个例子X={A,B,C,B,D,A,B},Y={B.D.C.A.B.A},那么最长的公共序列Z={B,C,B,A}或{B,D,A,B},最朴素的算法就是遍历原创 2017-08-14 15:56:14 · 273 阅读 · 0 评论 -
HDU 1421 搬宿舍(DP)
搬宿舍Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度原创 2017-08-15 18:29:31 · 247 阅读 · 0 评论 -
HDU 1058 Humble Numbers
Humble NumbersProblem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, … show原创 2017-08-15 23:45:11 · 259 阅读 · 0 评论 -
Hdu 2082 找单词(DP)
找单词Problem Description 假设有x1个字母A, x2个字母B,….. x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,….. 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如AC原创 2017-09-06 13:17:24 · 296 阅读 · 0 评论 -
Hdu 2859 Phalanx
PhalanxProblem Description Today is army day, but the servicemen are busy with the phalanx for the celebration of the 60th anniversary of the PRC. A phalanx is a matrix of size n*n, each element is a原创 2017-09-14 04:11:06 · 302 阅读 · 0 评论 -
Hdu 1024 Max Sum Plus Plus(DP)
Max Sum Plus PlusProblem Description Now I think you have got an AC in Ignatius.L’s “Max Sum” problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced原创 2017-08-28 20:53:11 · 260 阅读 · 0 评论 -
Hdu 1025 Constructing Roads In JGShining's Kingdom(DP)
Constructing Roads In JGShining’s KingdomProblem Description JGShining’s kingdom consists of 2n(n is no more than 500,000) small cities which are located in two parallel lines.Half of these cities are原创 2017-08-29 10:11:57 · 318 阅读 · 0 评论 -
最大子阵和(DP)&& Hdu 1003 && Hdu 1081
我们看最大子阵和之前先看一个最长子序列的问题,给你一个数组,让你求出值最大的连续序列Max SumProblem Description 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,-1,5,4,-7), th原创 2017-08-29 17:09:45 · 293 阅读 · 0 评论 -
动态规划46题
HDU 1159LCS(最长公共子串)问题 HDU 1421搬宿舍 HDU 1058 Humble Numbers HDU 1978How many ways HDU 1024Max Sum Plus Plus(求前m个最大区间) HDU 1160FatMouse’s Speed (LIS问题) HDU 1025Constructing Roads In JGShining’s King原创 2017-08-15 18:33:27 · 261 阅读 · 0 评论 -
Hdu 2955 Robberies
RobberiesProblem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has dec原创 2017-08-29 17:30:00 · 215 阅读 · 0 评论 -
hiho1259 数位
这题uva上不能交,题意最后综合一下就是给你一个序列,f[i]=f[i-1]*3,f[i+1]=f[i-1]*3+1,最后综合过来就是数位dp计算将f[i]%mod以后的每种值的数量然后异或起来,公式比较难推,推出来以后就是裸的计算取模的dp#include<bits/stdc++.h>using namespace std;using LL = int64_t;LL mod,...原创 2018-10-31 17:34:15 · 162 阅读 · 0 评论