动态规划
文章平均质量分 91
啦啦啦
HeZephyr
无限进步!
展开
-
#10178. 「一本通 5.5 例 4」旅行问题 单调队列优化问题
题面John 打算驾驶一辆汽车周游一个环形公路。公路上总共有 nnn车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米。John 必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所有的车站,并回到起点。在一开始的时候,汽车内油量为零,John 每到一个车站就把该站所有的油都带上(起点站亦是如此),行驶过程中不能出现没有油的情况。任务:判断以每个车站为起点能否按条件成功周游一周。输入格式第一行是一个整数nnn ,表示环形公路上的车站数;接下来nnn行,每行两个整数p.原创 2021-06-03 20:29:06 · 613 阅读 · 0 评论 -
状态压缩DP学习总结+经典例题精解
文章目录状压DP学习总结+经典例题精解1、前言2、状态压缩3、使用场景4、常用模板5、经典例题[5.1、 [USACO06NOV]Corn Fields G](https://www.luogu.com.cn/problem/P1879)5.2、吃奶酪[5.3、 [USACO13NOV]No Change G](https://www.luogu.com.cn/problem/P3092)5.4、[SCOI2005]互不侵犯状压DP学习总结+经典例题精解1、前言学了这么久,说真的,动态规划是一个特别原创 2021-05-31 21:34:31 · 5808 阅读 · 4 评论 -
HDU-2196Computer 树形DP-经典题
题面A school bought the first computer some time ago(so this computer’s id is 1). During the recent years the school bought N-1 new computers. Each new computer was connected to one of settled earlier. Managers of school are anxious about slow functionin..原创 2021-05-24 20:52:27 · 398 阅读 · 1 评论 -
HDU 4507 恨7不成妻 (数位DP套路题,详细解析)
不会数位DPDPDP的这里指路一篇介绍非常详细的数位DPDPDP的blogblogblog:点这里。链接恨7不成妻题面单身!依然单身!吉哥依然单身!DS级码农吉哥依然单身!所以,他生平最恨情人节,不管是214还是77,他都讨厌!吉哥观察了214和77这两个数,发现:2+1+4=72+1+4=72+1+4=7 7+7=7∗27+7=7*27+7=7∗277=7∗1177=7*1177=7∗11最终,他发现原来这一切归根到底都是因为和7有关!所以,他现在甚至讨厌一切和7有关的原创 2021-05-13 22:02:01 · 2943 阅读 · 2 评论 -
数位DP学习整理(数位DP看完这篇你就会了)
文章目录数位DP数位DP介绍数位DP解法数位DP经典例题例题1:度的数量例题2:计数问题例题3:数字游戏例题4:windy数数位DP总结数位DP数位DP介绍数位DP往往都是这样的题型,给定一个闭区间[l,r][l,r][l,r],让你求这个区间中满足某种条件的数的总数。而这个区间可能很大,简单的暴力代码如下:int ans=0;for(int i=l;i<=r;i++){ if(check(i))ans++;}我们发现,若区间长度超过1e81e81e8,我们暴力枚举就会超时了,原创 2021-05-12 18:20:58 · 39460 阅读 · 21 评论 -
Codeforces Round #708 (Div. 2) D. Genius 动态规划
原题链接测试样例input541 2 3 45 10 15 2041 2 1 25 10 15 2042 2 4 12 8 19 121 16 911666output35304200NoteIn the first test case optimal sequence of solving problems is as follows:1→2, after that total score is 5 and IQ=22→3, af..原创 2021-03-18 12:24:07 · 234 阅读 · 0 评论 -
Uva-116 - Unidirectional TSP(多阶段决策问题——多段图的最短路)
原题链接: uva-116测试样例Sample Input5 63 4 1 2 8 66 1 8 2 7 45 9 3 9 9 58 4 1 3 2 63 7 2 8 6 45 63 4 1 2 8 66 1 8 2 7 45 9 3 9 9 58 4 1 3 2 63 7 2 1 2 32 29 10 9 10Sample Output1 2 3 4 4 5161 2 1 5 4 5111 119题意: 给你一个nnn行mmm列的整数矩阵,从第一列的任原创 2020-12-02 21:35:51 · 589 阅读 · 0 评论 -
UVA—1347 (经典动态规划)Tour
原题链接: https://vjudge.net/problem/UVA-1347/origin测试样例Sample Input31 12 33 141 12 33 14 2Sample Output6.477.89题意: 给定你nnn个横坐标xxx,递增的点。需要你设计一条最短欧几里得距离路线,要求从最左边的点出发,走到最右边的点之后再返回,且除了最左边的点和最右边的点之外的每个点都只走了一次。解题思路: 这道题是一道经典的动态规划题目。如果我们按题目意思去思考那很难原创 2020-11-30 21:31:48 · 478 阅读 · 0 评论 -
UVA—437 (DAG最长路算法)The Tower of Babylon
原题链接: UVA-437测试样例Sample Input110 20 3026 8 105 5 571 1 12 2 23 3 34 4 45 5 56 6 67 7 7531 41 5926 53 5897 93 2384 62 6433 83 270Sample OutputCase 1: maximum height = 40Case 2: maximum height = 21Case 3: maximum height = 28Case原创 2020-11-30 19:30:55 · 274 阅读 · 0 评论 -
A Spy in the Metro(DAG上的动态规划)UVA - 1025
原题链接: https://vjudge.net/problem/UVA-1025测试样例Sample Input4555 10 1540 5 10 2040 5 10 154181 2 350 3 6 10 1260 3 5 7 12 152302012071 3 5 7 11 13 170Sample OutputCase Number 1: 5Case Number 2: 0Case Number 3: impossible题意:..原创 2020-11-25 16:20:31 · 217 阅读 · 0 评论 -
B. Ilya and Queries(动态规划)Codeforces Round #186 (Div. 2)
原题链接: http://codeforces.com/contest/313/problem/B测试样例input…43 42 31 62 6output1154input#…###51 35 61 53 63 4output11220题意: 给你一个字符串sss,接下来有mmm次询问,每次询问会给定区间[l,r][l,r][l,r],你需要回答在这区间中有多少对si=si+1s_i=s_{i+1}si=si+1的数量,其中l≤i<r原创 2020-11-23 16:47:48 · 214 阅读 · 0 评论 -
D. Catching Cheaters(动态规划)Codeforces Round #683 (Div. 2, by Meet IT)
原题链接; http://codeforces.com/contest/1447/problem/D测试样例input4 5abbabababoutput5input8 10bbbbababbbbabaaaaaoutput12input7 7uiibwwsqhtkxcnoutput0NoteFor the first case:abb from the first string and abab from the second string have LC原创 2020-11-16 21:13:54 · 246 阅读 · 0 评论 -
HDU——1069 Monkey and Banana(动态规划)
原题链接; http://acm.hdu.edu.cn/showproblem.php?pid=1069测试样例Sample Input110 20 3026 8 105 5 571 1 12 2 23 3 34 4 45 5 56 6 67 7 7531 41 5926 53 5897 93 2384 62 6433 83 270Sample OutputCase 1: maximum height = 40Case 2: maximum height原创 2020-10-09 22:31:58 · 282 阅读 · 0 评论 -
HDU——1029 Ignatius and the Princess IV(STL/动态规划)
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1029测试样例Sample Input51 3 2 3 3111 1 1 1 1 5 5 5 5 5 571 1 1 1 1 1 1Sample Output351题意: 给你一个奇数NNN长度大小的整数序列,你需要找出其中一个元素,它至少出现了(N+1)/2(N+1)/2(N+1)/2次。解题思路: 这里我们有两种方法去解决。先说通俗的解法,即是用map容器来解决,我们对每次原创 2020-10-09 21:15:12 · 284 阅读 · 0 评论 -
HDU——1024 Max Sum Plus Plus(动态规划+优化)
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1024测试样例Sample Input1 3 1 2 32 6 -1 4 -2 3 -2 3Sample Output68题意: 给你一个长度为nnn的整数序列numnumnum,让你求出其中mmm个不重复的子段最大和。解题思路: 这道题应该很容易想到动态规划,状态也比较好找,我们用dp[i][j]dp[i][j]dp[i][j]来表达iii个子段以num[j]num[j]num[j]结原创 2020-10-09 20:41:51 · 234 阅读 · 0 评论 -
C1. Pokémon Army (easy version)(动态规划)Codeforces Round #672 (Div. 2)
原题链接:https://codeforces.com/contest/1420/problems测试样例input33 01 3 22 01 27 01 2 5 4 3 6 7output329NoteIn third test case we can build an army in such way: [1 2 5 4 3 6 7], its strength will be 5−3+7=9.题意: 给你一个整数数组aaa,其中每个元素代表对应神奇宝贝的力量,原创 2020-09-25 11:03:42 · 552 阅读 · 0 评论 -
专题一:DAG上的动态规划
嵌套矩形问题实现代码/**邮箱:unique_powerhouse@qq.com*blog:https://me.csdn.net/hzf0701*注:文章若有任何问题请私信我或评论区留言,谢谢支持。**/#include<bits/stdc++.h> //POJ不支持#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增#define per(i,a,n) for (int i=a;i>=原创 2020-09-23 20:53:03 · 428 阅读 · 0 评论 -
HDU——1599 最大子矩阵(暴力优化/动态规划矩阵前缀和)
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1559测试样例Sample Input14 5 2 23 361 649 676 588992 762 156 993 169662 34 638 89 543525 165 254 809 280Sample Output2474解题思路: 这道题非常好理解,操作也很好操作,暴力的话直接从左到右取矩阵,从上到下取矩阵,遍历所有子矩阵获取最大值即可。不过没这么简单,这自然会超时,不能原创 2020-09-18 13:33:45 · 451 阅读 · 0 评论 -
C. Two Arrays(组合数学/动态规划) Educational Codeforces Round 80 (Rated for Div. 2)
原题链接: https://codeforces.com/problemset/problem/1288/C测试样例Input2 2Output5Input10 1Output55Input723 9Output157557417NoteIn the first test there are 5 suitable arrays:a=[1,1],b=[2,2];a=[1,2],b=[2,2];a=[2,2],b=[2,2];a=[1,1],b=[2,1];a=原创 2020-09-16 21:20:03 · 283 阅读 · 1 评论 -
C. Mortal Kombat Tower(动态规划)Educational Codeforces Round 95 (Rated for Div. 2)
原题链接: http://codeforces.com/contest/1418/problems测试样例input681 0 1 1 0 1 1 151 1 1 1 071 1 1 1 0 0 161 1 1 1 1 11110output222210题意: 有一个挑战塔,其中有nnn层,每层都有一个BOSS,它们都具有困难程度。现在你和你的朋友联手闯关,你们都可以杀死一个或两个BOSS(杀死两个BOSS即过两关。),当你的朋友结束关卡之后,你开始下一关原创 2020-09-15 15:16:09 · 515 阅读 · 1 评论 -
Longest Common Subsequence(入门dp题)
原题链接: https://vjudge.net/contest/389452#problem/C测试样例:Inputabcfbc abfcabprogramming contestabcd mnpOutput420Inputabcfbc abfcabprogramming contestabcd mnpOutput420题意: 给你两个字符串,求它们的最长公共子序列长度。解题思路: 这道题是一道经典的dp问题,为什么是呢?由于我们是找字符串的公共子序列长度,那么原创 2020-08-22 20:52:42 · 237 阅读 · 0 评论 -
C. Three displays(动态规划)Codeforces Round #485 (Div. 2)
原题链接: https://codeforces.com/problemset/problem/987/C测试样例:样例输入152 4 5 4 1040 30 20 10 40样例输出190样例输入23100 101 1002 4 5样例输出2-1样例输入3101 2 3 4 5 6 7 8 9 1010 13 11 14 15 12 13 13 18 13样例输出333提示:不要暴力哦。解题思路: 学长都提醒不要暴力了,还是暴力尝试了两发。赛后发现简直原创 2020-08-20 20:47:18 · 212 阅读 · 0 评论 -
POJ——2533 Longest Ordered Subsequence(入门dp题)
原题链接: http://poj.org/problem?id=2533测试样例:Sample Input71 7 3 5 9 4 8Sample Output4题意: 给你一个长度为n的序列,求出长度最大的上升子序列的长度。解题思路: 一道简单的动态规划问题,我们用dp[i]dp[i]dp[i]表示前iii个元素中上升子序列的最大长度。那么这个值是不是由前(i−1)(i-1)(i−1)个状态来决定的,我们这里即可列出状态转移方程,if(a[i]>a[j])dp[i]=max(dp原创 2020-08-16 20:39:03 · 245 阅读 · 0 评论 -
HDU——2084 数塔(入门DP题,附dp详细思路)
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=2084测试样例:Sample Input1573 88 1 0 2 7 4 44 5 2 6 5Sample Output30解题思路: 这是一道简单的DP问题,我们写这种题目通常有四步骤:刻画一个最优解的结构特征(即找状态并刻画)递归定义最优解的值(不是代表递归计算,而是找状态转移方程)计算最优解的值,通常采用自底向上的方法。利用计算出的信息构造一个最优解。那么对于这原创 2020-08-16 19:50:14 · 457 阅读 · 1 评论 -
D. Colored Rectangles(动态规划问题) Educational Codeforces Round 93 (Rated for Div. 2)
原题链接: http://codeforces.com/contest/1398/problem/D样例:input1 1 1354output20input2 1 39 512 8 5output99input10 1 111 7 20 15 19 14 2 4 13 14811output372题意: 你有三对彩棒的多重集合,即G,B,C三个数组,每个数组中元素代表的是对应彩棒的长度。你可以选择颜色不同的两对彩棒形成一个矩形。即形成的矩形它们的相对侧是相原创 2020-08-15 03:04:20 · 1139 阅读 · 19 评论 -
D. Rarity and New Dress(思维+动态规划)Codeforces Round #662 (Div. 2)
原题链接:https://codeforces.com/contest/1393/problem/D题意:给定一个n∗mn*mn∗m的字符矩阵,判断有多少个相同字符斜正方形。解题思路:我们首先不管别的,对于每一个字符,它都能组成只有一个相同字符的斜正方形。那么其余的就是多种相同字符组合在一起形成的斜正方形了,怎么组合呢?我们不难发现。仔细看这张图,在第一个图形中,若要构成这样的斜正方形,那么最下面的那个点一定要可以往上延伸。即判断当前位置[i][j]与上面四个位置([i-1][j]、[i-1][j-原创 2020-08-08 10:29:25 · 2080 阅读 · 4 评论