动态规划
浩瀚海洋4018
这个作者很懒,什么都没留下…
展开
-
NYOJ15括号配对(二)(区间dp)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=15 这道题我已经看了不下5遍了, 每次看了都是没思路, 这次再看还是没思路,但还是硬着头皮往下做了, 网上百度解题思路,看别人的博客, 终于看出来点门路了, 又想了许久, 又向学长求教了一下, 学长说是区间dp,然后我就全明白了, 区间dp以前学过了, 竟让一点也没有想到, 瞬间感觉还是原创 2015-03-26 11:19:14 · 447 阅读 · 0 评论 -
POJ1014 Dividing(DP)
题目链接:http://poj.org/problem?id=1014 题目大意:有6个物品, 他们的价值为1~6;然后给出6个数, 每个数代表相应物品的数量; 问你能否把物品分成相等的两份。 DP题, 多重背包的模版题。 把物品的总价值 的一半看成背包容量。物品的价值和花费一样, 最判断背包装的最大价值和背包容量是否相等即可 刚学习多重背包写个博客, 记录下思想。 学习过0-1背包和完全背原创 2015-04-17 11:24:04 · 347 阅读 · 0 评论 -
NYOJ1208 水题系列(DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1208 大意: 给你一个有向图,每条边都有一定的权值,现在让你从图中的任意一点出发,每次走的边的权值必须必上一次的权值大的情况下,问你最多能走几条边? 这道题最容易想到的, 就是最长单调递增子序列;但是在这道题上是超时的。 每次走到边的权值必须比上一次的大, 所以我们可以先把所有的原创 2015-05-05 08:13:35 · 628 阅读 · 0 评论 -
NYoj110 剑客决斗
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=110 分析: 这道题真是没想到是动态规划,已开始认为是图论,想了好久只有最大流才能求出值,但是构不图。。(还是太弱啊)。 看了一篇博客 才知道是区间动态规划。 考虑 x 是否能赢得战斗,把环看成链,x点拆成两个,分别作为链的起点和终点。这样能胜出的条件就是自己和自己相遇。原创 2015-07-11 10:38:28 · 666 阅读 · 0 评论 -
NYOJ166 小珂的数学题(数位dp)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=166 分析: 这道题的做法应该很多, 我看到有人用组合数学做的(真是大牛啊); 我以开始也想用组合数学做,但是找了一个小时也没弄出来。 然而发现用数位DP(记忆化搜索)可以做的。 dp【d】【num】表示:第d位上不大于num的种类的个数 记忆化搜索是传三个参数 d, num, f原创 2015-07-14 22:48:12 · 935 阅读 · 0 评论 -
NYOJ742(DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=742 分析: 怎么说的, 看了大牛的博客之后,感觉也不是太难, 就是写不出来。 这题需要两个dp数组;状态定义: dp【】:表示前 j 个数中, 第 i 段以 j 结尾, 分为 i 段的最连续大和; b【】 : 表示前 j 个数中, 分为 i 段的最大连续和; 转原创 2015-09-09 08:54:26 · 364 阅读 · 0 评论 -
NYOJ1023 还是回文(区间dp)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1023 分析: 这道题是一个简单区间的dp, 状态定义为dp【i】【j】: i 到 j 这个区间形成回文的最小花费, 分两种情况讨论: s【i】 == s【j】: dp【i】【j】 = dp【i+1】【j-1】; s【i】 == s【j】: dp【i】【j】 = min(原创 2015-09-08 17:39:50 · 335 阅读 · 0 评论 -
HDU 5489 Removed Interval (LIS,变形)
转载地址:http://www.bubuko.com/infodetail-1120211.html 题意: 给出一个n个元素的序列,要求从中删除任一段长度为L的连续子序列,问删除后的LIS是多少?(n 思路: 如果会O(nlogn)求普通LIS的算法,这道题将变得很简单。 首先按照求LIS的思路,当扫到元素a[i]并完成操作后,a[1->i]就是一段转载 2015-10-01 15:09:52 · 347 阅读 · 0 评论 -
HDU 5550 Game Rooms(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5550 转载地址:http://blog.csdn.net/snowy_smile/article/details/49618219 题意: T(100)组数据;对于每组数据,有n([2,4000])层楼。对于第i层楼,有女生num[0][i]个,男生num[1][i]个。(1_ 分析: 首先转载 2015-11-05 12:31:21 · 708 阅读 · 1 评论 -
acdream 1426 Beautiful People(双线最长单调子序列)
题目链接:http://acdream.info/problem?pid=1216 题意: 一个俱乐部有n个人, 每个人都有一个漂亮值和财富值。现在俱乐部要举办活动, 但是俱乐部中有些人是相互讨厌, 相互讨厌的人有两累即si=bj or si>=sj&&bi 分析: 很明显, 满足条件的人si, bi都是严格的单调的。 所以我们可以想到最长单调子序列, 这个就是多了一个条件的限制。我们可以原创 2015-10-07 10:50:35 · 323 阅读 · 0 评论 -
ZOJ 3905 Cake (DP)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3905 题意: A和B一共买了n(为偶数)块蛋糕, A和B的口味不同, 所以对每块蛋糕的喜欢值不同。 现在A和B要进行n/2次操作, A每次取两块蛋糕,B先选取。 问A得到的喜欢值的总和最大是多少。 分析: 如果单纯的从n个数中选取m个数使得到的和最大, 估原创 2015-10-12 09:20:04 · 428 阅读 · 0 评论 -
Adjacent Bit Counts (DP)
题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=4286 题目大意: 给一个n位的数, 每一位上的数只能是0或1; 把每个相邻的两位的相乘求和得到一个值, 问在有n位得到这个求和的值时,总共有多少中方案。 DP 定义状态 dp【i】【j】【0】 表示第i位求和值为j最后一位为0时,有多少中方案;dp【i】【j】【1】 表示第i位求和值为j最后原创 2015-04-16 18:35:13 · 370 阅读 · 0 评论 -
NYOJ 651 Cut the rope(DP, 经典的整数划分问题)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=651 题目大意: 给你一个长度为L的棍让你截成k(k>=2)段,并且截下的每小段的长度都不能相等, 问你总共有多少种请况 根据题意我们可知这是一道整数划分的题, 首先我要找到能最多分为多少段 1+2+3........+k = k(k+1)/2; 所以k最多为315 定义状态 dp原创 2015-04-09 19:13:13 · 568 阅读 · 0 评论 -
UVA 348 最优矩阵链乘(线性动态规划)
题意:给你几个矩阵相乘, 然你求出最少计算次数时矩阵相乘的表达式 题目地址: 这道题的本意就是让你求矩阵相乘时的最少计算次数, 并输出最少计算时的计算路径。我们只要在dp时用一个数组保存路径, 最后递归输出即可。 状态:dp(i, j)表示第i个矩阵到第j个矩阵的最少计算次数, 状态转移方程: dp[i][[j] = min(dp[i][j] + dp[j+1][i+k] + sux[i]原创 2015-01-26 17:34:44 · 446 阅读 · 0 评论 -
NYOJ 737 石子合并(一)(区间动规)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=737 区间内枚举最后一次的位置, 所以说区间动规一般都是三层for循环, 前两层用来控制区间长度, 最后一层用来枚举最后一次的位子, 还有需要注意的是区间用从小到大, 因为动态规划就是后面的用到前面的出的结果递推后面的结果。 再说一下这道题,#incl原创 2015-03-10 15:12:30 · 513 阅读 · 0 评论 -
NYOJ 640 “炫舞家“ST(DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=740 做了这道题, 发现还是很菜啊, 自己想了好长时间, 还是没想出来, 看了大牛发的博客, 才知道很简单啊,dp还是状态最重要啊,具体的都在代码里写了 #include #include #include using namespace std; const int maxn = 1原创 2015-04-11 20:37:23 · 510 阅读 · 0 评论 -
NYOJ 195 飞翔(DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=195 这道题如果按照常规的dp, 会发现数组开不下, 并且会很慢, 所以要想另外一种方法。 我们知道如果没有捷径, 最短路径就是(n+m)*100, 但是有捷径的就可以减少两条边,所以我们可以动态规划出最多的捷径个数就可以了。结果就是(m+n-2*ans+sqrt(2)*ans)*10原创 2015-04-07 16:59:23 · 446 阅读 · 0 评论 -
POJ3254Corn Fields(状态压缩入门题)
题目链接:http://poj.org/problem?id=3254 题目大意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑! 发现一篇讲转载 2015-04-19 10:37:26 · 344 阅读 · 0 评论 -
NYOJ 571 整数划分(三)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=571 转载出处:http://www.cnblogs.com/xiaoxian1369/archive/2011/09/12/2174212.html 整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一转载 2015-04-10 08:23:35 · 521 阅读 · 0 评论 -
NYOJ 104 最大和(DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=104 题目大意: 就是给你一个r行c列的矩阵, 让你求出其子矩阵中所有数相加和最大的。 这道题就最大子区间和的二维的问题。 二维的子区间和也可以化成一维子区间来做, 就是我们每次选取一个子矩阵, 我们先把选取子矩阵的每一列的和求出来,这就转化成一维的区间求和了, 但是我们每次都要重复原创 2015-04-07 15:07:29 · 444 阅读 · 0 评论 -
NYOJ747 蚂蚁的难题(三)(贪心+DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=747 每种食材只有两种操作,即取与不取, 又有在T时间内, 所以很容易想到0-1背包, 但是我们发现即使选的食材一样, 但选的顺序不一样获得美味指数也不样, 所以要先贪心求一下选的先后顺序, 然后在DP, 就AC了。 贪心的公式就是主要是一个算式: a1-b1c1+a2-(c1+c2原创 2015-04-14 18:47:03 · 492 阅读 · 0 评论 -
NYOJ 832 合并游戏(状态压缩)
dp 状态压缩原创 2015-04-15 21:03:39 · 384 阅读 · 0 评论 -
NYOJ304(区间DP)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=304 一个区间里面有很多不重复的灯,机器人从其中一个灯开始关灯。给出灯和原点的距离 和 灯的功率,问机器人从开始关灯到关灯结束总共浪费的电能机器人每秒移动一米。因为各个灯消耗的电能不一样,所以机器人的关灯的选择有一定策略思路。 区间dp dp[i][j][0] [i,j]之间的转载 2015-04-09 19:06:15 · 329 阅读 · 0 评论 -
HDU 4778 Gems Fight!(13年杭州区域赛-I题-博弈DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4778 题意: 有 G 种颜色的宝石,放在 B 个袋子里(每种颜色可以放多个)。 两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。反应条件是 cooker 中出现 S 个一样颜色的宝石,而且一旦起反应,每 S转载 2015-12-07 21:34:27 · 738 阅读 · 0 评论