dp一般看规律
_Shmily
这个作者很懒,什么都没留下…
展开
-
2020 Multi-University Training Contest 9---- HDU--6867、Tree (树形dp)
题目连接题面:题意:给定一棵根为 111 号节点的有向树,你可以添加一条边,使得形成的有向图中的可达点对 (x,y)(x,y)(x,y) 最多。可达点对 (x,y)(x,y)(x,y) 是指能从 xxx 走到 yyy,其中 (x,x)(x,x)(x,x)也算合法的可达点对。题解:因为是有向有根树,那么根节点可以到达所有的节点,那么最优的连接方式一定是从某个叶子节点连接到根节点,这样根节点到叶子节点这条链就都变成可达所有的节点。对于根节点到叶子节点这条链上面的一点 xxx,连接叶子结点之后其增原创 2020-08-30 08:36:10 · 192 阅读 · 0 评论 -
HDU - 3538 A sample Hamilton path (状压dp)
题目vj链接题面:题意:给定一张完全图,边有边权,求出一条边权和最小的哈密顿路。其中有m个限制,限制 (x,y)(x,y)(x,y) 表示在经过 yyy 之前必须先经过 xxx。哈密顿路径:经过每个节点且每个节点都只经过一次的路径。题解:状压dp。设 dp[i][j]dp[i][j]dp[i][j] 为当前途径的状态为 iii,且当前在 jjj 点的最小值。至于m个限制,在将要途径某一点 xxx 的时候判断一下即可。这个题开到题解要求的数据范围会 MLEMLEMLE,但是动态开数组就能原创 2020-08-26 19:48:57 · 166 阅读 · 0 评论 -
CodeForces - 245H Queries for Number of Palindromes(线性dp)
题目vj链接题面:题意:给定一个字符串,每次询问[l,r][l,r][l,r]的子串中有多少个回文子串。题解:我们设dp[l][r]dp[l][r]dp[l][r]为[l,r][l,r][l,r]的回文子串的个数,那么dp[l][r]=dp[l][r−1]+dp[l+1][r]−dp[l+1][r−1]+[S(l,r)==回文串]dp[l][r]=dp[l][r-1]+dp[l+1][r]-dp[l+1][r-1]+[S(l,r)==回文串]dp[l][r]=dp[l][r−1]+dp[l+1]原创 2020-08-25 16:53:37 · 124 阅读 · 0 评论 -
2020 Multi-University Training Contest 2---- HDU--6774、String Distance(dp)
题目链接题面:题意:定义两个符串的距离为执行添加 / 删除操作(可以对于任意一个字符串进行操作)直到两个串相等的最小操作数。给定一个串AAA,和一个串BBB,每次询问A[l,r]A[l,r]A[l,r]与 BBB 的距离。其中len(A)≤1e5,len(B)≤20len(A)\le1e5,len(B)\le20len(A)≤1e5,len(B)≤20题解:(一)首先可以知道,两个串 SSS 和 TTT 距离dis(S,T)=len(S)+len(T)−2∗lcs(S,T)dis(S,T)原创 2020-08-25 09:01:38 · 107 阅读 · 0 评论 -
ZSTU 4514: yesky wine锦鲤卡 (线性dp)
题目链接题面:4514: yesky wine锦鲤卡Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 28 Solved: 6Description懒羊羊的红酒供应系统优化完成了。懒羊羊好开心!他决定给所有ACMer和OIer包括教练一个机会,幸运者可以取得yesky wine锦鲤卡,免费供应一年的yesky wine。要取得锦鲤卡,需要通过一个游戏,谁是第一个取得游戏的胜利者,就可以拿走锦鲤卡。游戏的目标很简单,用最少的回合完成红酒瓶游戏。总共原创 2020-08-24 22:10:46 · 131 阅读 · 0 评论 -
SDUT 4784 - 猜数字 (区间dp)
题目链接题面:小明发现了一个好玩的游戏,他想和大家分享,游戏的名字叫做“猜数字”。游戏会告诉你一个数字n,表示答案在1到n之间,你每次可以猜一个数字,如果猜中了,获得游戏胜利,但如果猜错了,你将要花费你所猜数字的金币,并得知是猜大了还是猜小了。小明想知道,他至少需要准备多少金币能确保获得游戏胜利。Input输入一个正整数n(1 <= n <= 100),表示数字范围。Output输入一个正整数,表示小明需要准备的金币个数。SampleInput5Output6题解:一直以原创 2020-08-24 22:10:13 · 622 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) D. Ilya and Escalator ( 概率dp )
题目链接题意:n个人排队按顺序上电梯,若某一时刻轮到某人上电梯了,他上电梯的概率为p,不上电梯的概率为 1-p,若他不上电梯,那么他后面的人不能上电梯。问,t 时间电梯上人数的期望。题解:感觉自己越来越垃圾了,这个题都不会了。设 dp [ i ] [ j ] 为 i 时间 电梯上有 j 个人的概率。#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#原创 2020-08-24 22:09:14 · 154 阅读 · 0 评论 -
Codeforces Round #289 (Div. 2) F. Progress Monitoring (计数类dp、记忆化搜索、区间dp)
题目链接题面:题意:给定一棵树的 dfs 方式和 dfs序,问满足这个dfs序的不同的树有多少棵。题解:表示状态:dp [ i ] [ j ] = numbers表示 a [ i to j ] 这些节点,以 a [ i ] 为根所能构成的树的方案数。找出答案:ans = dp [ 1 ] [ n ]如何转移:dp [ i ] [ j ] 一 定以a[i]为根,且第一个访问的子节点一定是 a [ i + 1 ] 。所以将 dp [ i ] [ j ] 分为三部分:(1)根原创 2020-08-24 22:08:31 · 97 阅读 · 0 评论 -
Codeforces Round #291 (Div. 2) E. Darth Vader and Tree (dp + 矩阵快速幂优化)
题目链接题面:题意:有棵无限大的有根树,每个节点都有N个孩子,每个孩子距离父亲节点的距离为di.求距离根节点距离<=x的节点个数。题解:注意到 di <= 100我们 设 dp [ i ] 为距离根节点为 i 的点的个数,sum [ i ] 为距离根节点小于等于 i 的点的个数。cnt [ i ] 为距离父亲节点 为 i 的点的个数。那么有转移方程。for(int i=1;i<=100;i++){ for(int j=1;j<=i;j++) { dp[i原创 2020-08-24 22:06:31 · 114 阅读 · 0 评论 -
Codeforces Round #286 (Div. 2) C. Mr. Kitayuta, the Treasure Hunter(线性dp)
题目链接题面:题意:有30001个岛屿,下标为0~30000,给n个数告诉你有n份宝藏藏在哪些岛上。你从0往下标大的方向跳,第一步跳的距离为d。如果上一步跳的距离为D,这一步就可以跳D-1或D或D+1(但是距离必须大于0)。问最多拿到多少宝藏。题解:dp [ i ] [ j ] 表示跳到第 i 个岛屿上且前一步 跳跃距离为 d + j 的最大值。因为每次只能增加1或者减少1,那么 d 往上波动不超250,往下波动不超250。接下来线性递推就可以啦。#include<iostr原创 2020-08-24 22:02:27 · 129 阅读 · 0 评论 -
Codeforces Round #287 (Div. 2) D. The Maths Lecture (数位dp)
题目链接题面:题意:给定 n,k,m。其中n是数的位数,不允许有前导0.k是给定的模数,要求某数存在一个后缀可以整除k。即 y%k==0,且y>0m是给定的模数,要求最终答案对m取模。即:求n位数中,存在 可以整除k 的后缀的数的数量,其中后缀>0。#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cst原创 2020-08-24 22:01:53 · 96 阅读 · 0 评论 -
中国石油大学ACM俱乐部开放训练赛 问题 A: sciorz画画 区间dp
题目描述众所周知,sciorz会画画。某天,sciorz画了一个凸多边形,这个多边形的每个顶点都有一个权值a[i]。sciorz觉得这个凸多边形不够美丽,于是他决定在n个点之间连线,最终用n-3条不相交的线将这个凸n边形分割成n-2个三角形。sciorz认为,一个三角形的美丽值是三个顶点权值的乘积,凸多边形的美丽值是其内部三角形的美丽值的和。sciorz想找到一种分割方案,使得这个凸多边形的美丽...原创 2020-08-24 21:48:28 · 134 阅读 · 0 评论 -
P3195 [HNOI2008]玩具装箱TOY /【模板】斜率优化
题目链接//本题数据有点弱,实际上中间是有可能爆掉 long long 的#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<string>#include<queue...原创 2020-08-24 21:31:48 · 85 阅读 · 0 评论 -
POJ - 2279:Mr. Young‘s Picture Permutations(线性dp)
Mr. Young wishes to take a picture of his class. The students will stand in rows with each row no longer than the row behind it and the left ends of the rows aligned. For instance, 12 students could b...原创 2020-08-24 20:47:59 · 142 阅读 · 0 评论 -
POJ - 2127 Greatest Common Increasing Subsequence(线性dp,最长公共上升子序列)
POJ - 2127 Greatest Common Increasing SubsequenceYou are given two sequences of integer numbers. Write a program to determine their common increasing subsequence of maximal possible length.Sequence ...原创 2020-08-24 20:48:10 · 175 阅读 · 0 评论 -
The Preliminary Contest for ICPC Asia Nanjing 2019:D. Robots(期望dp):
题目链接: D. Robots 题目这一题应该是比较常规的期望dp,但是比赛的时候被b题卡到飞起,当然这题就没有出。。。。拓扑序和dfs都能解决,于是写了个dfs,记得及时回溯就好啦。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#inclu...原创 2020-08-24 20:56:41 · 222 阅读 · 0 评论 -
The Preliminary Contest for ICPC Asia Xuzhou 2019: J. Random Access Iterator(概率dp):
其实这题也是比较简单的,只不过我们队开这题的时候已经快结束了,导致满脑子混沌。。。以至于我样例手动模拟都算错了概率。。。。。题目连接:点击这里dp[u] 表示 u这个点向下能到达最深深度的概率,因为对于每个点要找k次,只要其中有一次能到达最深即可。但是对于不能到达要所有次都不能到达,比较好求,那么我们就可以求 u这个点向下不能到达最深深度的概率p,用1减去p就是dp[u]。#include...原创 2020-08-24 20:57:16 · 201 阅读 · 0 评论 -
The Preliminary Contest for ICPC Asia Shenyang 2019: D. Fish eating fruit(树形dp || 点分治):
真的是诸事不顺,先被k题卡了题意。真水题被卡题意可还行。。。然后,,就没有然后了。上手这个题的时候还有半个小时,看起来挺水的一个树形dp,两遍dfs搞定。可能是因为当时感觉时间不够了,有点紧张,在第一遍dfs的时候忘了加子节点的距离和。加上就过了。题目链接:点击这里#include<iostream>#include<cstdio>#include<c...原创 2020-08-24 20:58:55 · 296 阅读 · 0 评论