ACM_动态规划
文章平均质量分 71
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
-
算法精讲:动态规划
介绍动态规划并不是一种具体的算法,而是一种思想,简单来说就是缓存+枚举,把求解的问题分成许多阶段或者多个子问题,然后按顺序求解各子问题。前一子问题的解为后一子问题提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。所以动态规划一般用来求最优解(对子问题进行决策),求种类数(对子问题进行加和)先分享几个经典的动态规划实现,后续再分析几个面试题最长上升子序列数塔问题最长公共子串背包问题原创 2020-06-25 11:00:43 · 396 阅读 · 0 评论 -
HDU 2155 小黑的镇魂曲
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2155思路:大神地址:http://www.aiuxian.com/article/p-1671720.html代码:#include #include #include #include #include #include #include #include #includ原创 2016-04-28 11:49:26 · 599 阅读 · 0 评论 -
HDU 1664 放苹果
题目地址:http://poj.org/problem?id=1664思路:大神地址:http://www.cnblogs.com/dongsheng/archive/2012/08/15/2640468.htmlAC代码:#include #include #include #include #include #include #include #include #i原创 2016-04-26 15:05:19 · 447 阅读 · 0 评论 -
HDU 1028 Ignatius and the Princess III(整数拆分问题)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1028思路:母函数,递归,DP都能写,母函数题解地址:http://blog.csdn.net/qq_25605637/article/details/46911309写的比较好的博客:http://blog.chinaunix.net/uid-26548237-id-3503956.html,原创 2016-04-26 11:50:46 · 404 阅读 · 0 评论 -
nyist 740 “炫舞家“ST
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=740思路:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f3f3f3f原创 2016-03-27 15:59:17 · 305 阅读 · 0 评论 -
nyist 61 传纸条(一)(双线程DP)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=61思路:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f3f3f3f;原创 2016-03-27 10:17:57 · 284 阅读 · 0 评论 -
HDU 1080 Human Gene Functions(带权值的最长公共子序列)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1080思路:最长公共子序列AC代码:#include #include #include #include #include using namespace std;int main(){ map map1; map1['A'] = 0; map1['C原创 2016-03-25 16:31:45 · 412 阅读 · 0 评论 -
HDU 1224 Free DIY Tour(DP求最短路)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1224思路:这道题说到底就是用DP求最短路,之所以能用DP,是因为题目中说了,飞机只能从标号低的城市到标号高的城市原创 2016-03-25 16:26:32 · 546 阅读 · 0 评论 -
HDU 1300 Pearls
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1300思路:简单DPAC代码:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f3原创 2016-03-25 14:40:56 · 230 阅读 · 0 评论 -
nyist 16 矩形嵌套(最长上升子序列变形)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=16思路:放矩形的时候,正着放一次,倒着放一次,正着放肯定不会套着倒着放AC代码:#include #include #include #include #include #include #include #include #include #include原创 2016-03-25 09:51:30 · 230 阅读 · 0 评论 -
nyist 252 01串
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=252思路:第一维表示长度,第二维表示目前最后一位是0还是1AC代码:#include #include #include #include #include #include #include #include #include #include #incl原创 2016-03-25 09:23:42 · 266 阅读 · 0 评论 -
河南第六届ACM省赛(Adjacent Bit Counts)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=715思路:dp[i][j][k],i为位数,j为和,k为最后一位是啥AC代码:#include #include #include #include #include #include #include #include #include #include原创 2016-02-29 18:45:55 · 665 阅读 · 0 评论 -
POJ 2192 Zipper
题目地址:http://poj.org/problem?id=2192思路:因为只能依次取,所以c[i+j]这个字符肯定是由a[i]或者b[j]构成的AC代码:#include #include #include #include #include #include #include #include #include #include #include cons原创 2016-04-06 18:36:47 · 368 阅读 · 0 评论 -
河南第六届ACM省赛(River Crossing)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=716思路:刚开始只想到DP,没想到是把一段分成成2段分别DPAC代码:#include #include #include #include #include #include #include #include #include #include #inc原创 2016-02-27 21:20:18 · 629 阅读 · 0 评论 -
UESTC 1271 Search gold (DP,多校联盟3)
题目地址:http://acm.uestc.edu.cn/#/problem/show/1271思路:有一个坑就是当他身上没有钱的时候会死掉AC代码:#include #include #include #include #include #include #include #include #include #include #include const in原创 2016-03-22 18:11:42 · 379 阅读 · 0 评论 -
HDU 2604 Queuing(矩阵快速幂)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2604思路:刚开始写DP错了,看别人的题解改了还是错,直接学快速幂A了,学了一招,第二位有2维时,可以开2个一维数组,比较容易理解AC代码:错误代码:#include #include #include #include #include #include #incl原创 2016-03-11 11:28:25 · 424 阅读 · 0 评论 -
nyist 746 整数划分(四)(经典DP)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=746思路:参考别人A的,类似于区间DPAC代码:#include #include #include #include #include #include #include #include #include #include #include const原创 2016-04-04 17:22:37 · 315 阅读 · 0 评论 -
UVa 11400 - Lighting System Design(白书,比较好)
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=26&problem=2395&mosmsg=Submission+received+with+ID+17138912思路:状态转移方程为dp[i] = min(dp[i],dp[j]+sum原创 2016-04-03 18:51:57 · 310 阅读 · 0 评论 -
ZOJ 1985 Largest Rectangle in a Histogram
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1985思路:枚举起始点O(n^3)肯定超时,O(n^2)都超时了,参考别人博客写的,用left和right数组保存比当前矩形高度高的最小下标和最大下标待测代码:#include #include #include #include #includ原创 2016-04-14 12:19:31 · 382 阅读 · 0 评论 -
ZOJ 1883 Tight Words(概率DP)
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=883题意:给你一个区间[0,k]从这个区间中取数,组成长度为n的一个数组,求数组中每个相邻位的差不超过1的概率思路:dp[i][j]表示的是第i位且以第j结尾的数组的概率AC代码:#include #include #include #includ原创 2016-05-11 18:21:29 · 667 阅读 · 0 评论 -
HDU 1158 Employment Planning
题目地址:点击打开链接思路:dp[i][j]表示前i个月最后一个月的总人数为j所花的最小费用状态移动方程:dp[i][j] = min{dp[i-1][k] + cost[i][j]},其中cost[i][j]是第i月的花费,1~当k2~当k>j时,第i个月炒了人,所以cost[i][j] = j*salary + (k-j)*fire写一下我刚开始就存在的2个疑问1:原创 2015-08-19 15:54:26 · 312 阅读 · 0 评论 -
HDU 1081 To The Max(二维最大字段和,转化为一维)
题目地址:点击打开链接思路:由二维的最大字段和问题,转化为一维的最大字段和问题,详解看代码:AC代码:#include #includeusing namespace std;int a[150][150],b[150];int main(){ int n,i,j,k,sum,max; while(cin>>n) { max =原创 2015-08-02 13:52:26 · 467 阅读 · 0 评论 -
区间DP问题(矩阵连乘,石子合并,括号匹配)
源码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;int m[110][110];int a[110];int n;int原创 2016-01-04 15:22:56 · 1302 阅读 · 0 评论 -
算法训练 结点选择 (无向边树形DP)
算法训练 结点选择 时间限制:1.0s 内存限制:256.0MB 问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i原创 2016-03-09 14:25:31 · 658 阅读 · 0 评论 -
河南第六届ACM省赛(探 寻 宝 藏)(双线程DP)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=712思路:比较裸的双线程DP吧AC代码:#include #include #include #include #include #include #include #include #include #include #include const int原创 2016-04-28 17:37:22 · 876 阅读 · 0 评论 -
HDU 4283 You Are the One(区间DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4283思路:这题一看特别像贪心,注意仔细读题,题目说队伍的排列顺序可以通过栈来调整,但不是每种顺序都可以通过栈来得到举个例子啊1 6 5 7 4 2 3如何调整都不会得到7 6 5 4 3 2 1AC代码:原创 2016-05-09 21:03:15 · 269 阅读 · 0 评论 -
POJ 3661 Running(朴素DP)
题目地址:http://poj.org/problem?id=3661思路:到达第n分钟时,有可能是跑过来的有可能是直接休息到的,区分一下就行AC代码:#include #include #include #include #include #include #include #include #include #include #include const in原创 2016-05-29 19:24:28 · 395 阅读 · 0 评论 -
POJ 3230 Travel(朴素DP)
题目地址:http://poj.org/problem?id=3230思路:看清题就行,没钱的时候还能欠债AC代码:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f3f3f3f原创 2016-05-29 18:27:45 · 398 阅读 · 0 评论 -
nyist 740 “炫舞家“ST(DP)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=740思路:错误代码:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3原创 2016-05-05 11:27:33 · 318 阅读 · 0 评论 -
HDU 1292 "下沙野骆驼"ACM夏令营(DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1292思路:dp[i][j]表示前j个人分成i队,dp[i][j] = dp[i-1][j-1] + dp[i][j-1] * i表示第j个人单独成一队,或者在前i队中选择一个插入AC代码:#include #include #include #include #include #原创 2016-05-05 08:56:56 · 365 阅读 · 0 评论 -
HDU 2829 Lawrence(DP+四边形不等式优化)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2829思路:大神地址:http://www.tuicool.com/articles/nMzAzi6四边形不等式:http://wenku.baidu.com/view/be418243a8956bec0975e3bf.html待写代码:#include #include #incl原创 2016-05-04 19:33:33 · 391 阅读 · 0 评论 -
HDU 1502 Regular Words(大数+dp)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1502思路:dp[3*n][n][n][n],第一维是长度,第2.3.4维是a,b,c的个数,写出的转移方程不是超Int就是超内存错误代码1:#include #include #include #include #include #include #include #incl原创 2016-03-25 11:39:28 · 333 阅读 · 0 评论 -
HDU 2686 Matrix(双线程DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2686题意:从矩阵的(1,1)到(n,n)再从(n,n)到(1,1)中间不经过重复的值,来回能走过的最大值是多少思路:打个来回可以直接想成从2个人同时从(1,1)到(n,n)且不经过同一个位置大神地址1:http://blog.csdn.net/yan_____/article/detail原创 2016-04-28 17:20:31 · 488 阅读 · 0 评论 -
ZOJ 1738
不太理解#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f3f3f3f;//1061109567typedef long long ll;const int maxn = 40000原创 2016-05-11 19:16:36 · 285 阅读 · 0 评论 -
HDU 2859 Phalanx(二维DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2859题意:求最大的对称矩阵思路:从右上角到左下角进行DPAC代码:#include #include #include #include #include #include #include #include #include #include #include原创 2016-04-25 15:15:29 · 290 阅读 · 0 评论 -
HDU 5074 Hatsune Miku(暴力+DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5074思路:暴力+DPAC代码:#include #include #include #include #include #include #include #include #include #include #include const int inf = 0x3f原创 2016-04-25 21:42:54 · 330 阅读 · 0 评论 -
UVa 1025 - A Spy in the Metro(白书)
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=245&page=show_problem&problem=3466思路:我写的是填表法,书上写的是填表法AC代码:#include #include #include #include #include #i原创 2016-04-01 14:13:32 · 300 阅读 · 0 评论 -
UVa 10003 - Cutting Sticks(白书,区间DP)
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=12&problem=944&mosmsg=Submission+received+with+ID+17137424思路:比较裸的区间DP吧,状态转移方程为dp[i][j]=min(dp[i]原创 2016-04-03 12:51:50 · 295 阅读 · 0 评论 -
UVa 437 - The Tower of Babylon(白书)
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=6&problem=378&mosmsg=Submission+received+with+ID+17127418思路:用2个维度表示状态转移,这个思路挺巧妙的AC代码:#includ原创 2016-04-01 16:35:35 · 265 阅读 · 0 评论 -
HDU 1520 Anniversary party(有向边树形DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:题目是说有N个人参加party,每个人有一个rating值(可以理解为权值)和一个up(上司的编号),为了保证party的趣味性,每一个人不可以和他的直接上司都参加,问最后的rating和最大思路:和数塔问题查不到,数塔问题真正理解了,看看代码就能很快理解,参考的大神的代码AC代原创 2016-03-08 16:26:31 · 281 阅读 · 0 评论