
———DP————
文章平均质量分 62
动态规划
Kelin__
One loves the sunset, when one is so sad...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[Codeforces1225G]To Make 1
题意定义函数f(x)={f(xk)k∣xxk∤xf(x)=\begin{cases}f(\frac xk)&k\mid x\\x&k\nmid x\end{cases}f(x)={f(kx)xk∣xk∤x给你nnn个正整数(a1,...,an)(a_1,...,a_n)(a1,...,an)和一个kkk,每次可以选择两个x,yx,yx,y删去,并把f(x...原创 2019-11-05 00:34:01 · 552 阅读 · 0 评论 -
[Codeforces1245F]Daniel and Spring Cleaning
题意求[l,r][l,r][l,r]之间有多少对(x,y)(x,y)(x,y)满足x+y=x⊕yx+y=x\oplus yx+y=x⊕y0≤l≤r≤1090\le l\le r\le10^90≤l≤r≤109题解注意到l,rl,rl,r的范围,又涉及到二进制位上运算,所以考虑按二进制来数位dpdpdp设f(l,r)f(l,r)f(l,r)表示满足以下条件的(x,y)(x,y)(x,y)...原创 2019-11-03 20:52:16 · 661 阅读 · 3 评论 -
[Codeforces1225E]Rock Is Push
题意一个n×mn\times mn×m的网格上有一些箱子你只能向下或者向右走,如果碰到了箱子你可以沿着你行走的方向推动它与之相连的在同一个方向上的所有箱子会一起向这个方向移动求从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)的方案数在模109+710^9+7109+7下的结果1≤n,m≤20001\le n,m\le20001≤n,m≤2000样例333的动图题...原创 2019-10-31 20:49:54 · 449 阅读 · 0 评论 -
[Codeforces1249F]Maximum Weight Subset
题意求一棵树的最大点权和子树,且子树里任意两点的距离大于KKK题解树上DPDPDP(默认111为树根)为了方便把将题目要求的大于KKK改成大于等于K+1K+1K+1,即一开始K=K+1K=K+1K=K+1算法一设f[u][k]f[u][k]f[u][k]表示以uuu为根的子树里离uuu最近的点距离uuu为kkk的答案那么对于uuu的子节点vvvf[u][k]={max{f[v0...原创 2019-10-24 15:27:02 · 588 阅读 · 0 评论 -
[Codeforces1239E]Turtle
题意给你一个2×n2\times n2×n的棋盘,经过格子(i,j)(i,j)(i,j)就会获得权值ai,ja_{i,j}ai,j重新排列整个棋盘,使得从左上角走到右下角的路径权值和的最大值最小(只能向下或者向右走)2≤n≤25,0≤ai,j≤5×104(1≤i≤2,1≤j≤n)2\le n\le25,0\le a_{i,j}\le5\times10^4(1\le i\le2,1\le j...原创 2019-10-23 13:21:14 · 375 阅读 · 0 评论 -
[Codeforces1237F]Balanced Domino Placements
题意给你一个n×mn\times mn×m的棋盘,上面已经放了kkk个的骨牌(1×21\times21×2)对于一个骨牌的每个格子,不能有其他骨牌的格子和它在同一列,同一行你可以在剩下的格子里放骨牌,也可以不放问这个棋盘有多少种放骨牌的方案,对998244353998244353998244353取模1≤n,m≤3600,0≤k≤24001\le n,m\le3600,0\le k\le...原创 2019-10-19 13:52:55 · 373 阅读 · 0 评论 -
[Bzoj3640]JC的小苹果
题意求1→n1→n1\to n点权和≤hp≤hp\le hp的概率(((有重边和自环)))题解因为不知道在终点还剩多少血,,,所以考虑顺推设f[x][u]f[x][u]f[x][u]表示1→u1→u1\to u还剩xxx点血的概率,dg[u],dg[u],dg[u]表示uuu的出度初值f[hp][1]=1f[hp][1]=1f[hp][1]=1可以得到∀v→u∈...原创 2018-04-05 19:31:01 · 476 阅读 · 0 评论 -
[JSOI2009]有趣的游戏
题意给你一个字符串集构造一个串S,S,S,每个位置你有pipip_i的概率插入第iii个字符问字符串集中每个字符串最先出现在构造的串中的概率题解涉及到字符串匹配首先想到建立ACACAC自动机考虑在trietrietrie图上DPDPDP设f[u]f[u]f[u]表示uuu状态在SSS中出现的概率如果uuu不是终止节点,,,那么有f[ch[u][i]]=∑...原创 2018-04-05 16:20:54 · 3229 阅读 · 0 评论 -
[HNOI2011]XOR和路径
题意给你一幅无向图,,,一条路径的权值为路径上边权的异或和你在每个点可以等概率的走向相连的点求1→n1→n1\to n路径权值的期望(有自环重边)一开始想偏了,,,以为期望的异或就是异或的期望后来发现可以按位处理题解整个处理显然是不行的因为每一位都是独立的,,,所以考虑按位处理,,,求出每一位是111的概率还是按照套路设f[u]f[u]f[u]表示u→n...原创 2018-04-05 11:30:30 · 519 阅读 · 0 评论 -
[SDOI2012]走迷宫
题意给你一个有向图,,,问从SSS走到TTT的期望步数如果存在一条路径从SSS出发走不到T,T,T,那么期望就是infinf\inf保证每个强连通分量大小≤100≤100\le100题解先考虑怎么判无解 如果一个点满足SSS能到,,,且他没有出度,,,那么就一定无解 如果SSS不能到TTT一样无解无向图很好做直接列nnn个方程然后高消即可考虑有向...原创 2018-04-04 23:39:14 · 455 阅读 · 0 评论 -
[POI2014]Hotels
题意给你一棵树,,,求任选333个点使得两两树上距离相同的方案数n≤105n≤105n\le 10^5题解设f[u][i]f[u][i]f[u][i]表示uuu子树里距离uuu为iii的节点个数g[u][i]g[u][i]g[u][i]表示uuu子树里两个点x,yx,yx,y到其lcalcalca的距离都是d,lcad,lcad,lca到uuu的距离是d−id−id-i的方...原创 2018-04-11 19:16:29 · 496 阅读 · 0 评论 -
[HNOI2018]毒瘤
题意求一幅图的最大独立集方案数n≤105,n≤105,n\le10^5,满足非树边≤11≤11\le11条AFOAFOAFO之后这篇题解搁了好久=.==.==.=题解1.1.1.考虑一棵树怎么做和普通求独立集一样枚举这个点选不选然后用乘法原理计算即可f[u][1]=f[u][1]*f[v][0];f[u][0]=f[u][0]*(f[v][0]+f...原创 2018-04-22 10:48:11 · 1155 阅读 · 0 评论 -
[SDOI2017]硬币游戏
题意给你一个字符串集构造一个010101串S,S,S,每个位置等概率的插入010101问字符串集中每个字符串最先出现在构造的串中的概率怎么感觉和[JSOI2009][JSOI2009][JSOI2009]有趣的游戏“一模一样”写完交一发只有40ptsTLE,40ptsTLE,40ptsTLE,原来这题是[JSOI2009][JSOI2009][JSOI2009]有趣的游戏数...原创 2018-04-06 22:22:35 · 604 阅读 · 0 评论 -
[SDOI2015]序列统计
题意ai∈S,ai∈S,a_i\in S,求∏ni=1ai≡xmodm∏i=1nai≡xmodm\prod_{i=1}^na_i\equiv x\mod m的方案数m∈P,m≤8000,n≤109,x∈[1,m−1]m∈P,m≤8000,n≤109,x∈[1,m−1]m\in P,m\le8000,n\le10^9,x\in[1,m-1]题解设f[i][j]f[i][j]f[i...原创 2018-04-13 15:29:23 · 468 阅读 · 0 评论 -
[CTSC2018]假面
题意nnn个人,Q,Q,Q个操作,,,第iii个人有mimim_i滴血,,,有两种操作1.1.1.以ppp的概率使uuu掉111点血2.2.2.给出kkk个人,,,从这些人中等概率地选出111个,,,求每个人被选中的概率最后求每个人剩余血量的期望题解考虑怎么求每个人剩余的血的期望用pu[i]pu[i]p_u[i]表示uuu剩余iii点血的概率⇒Eu=∑mii=0...原创 2018-05-21 12:56:56 · 866 阅读 · 0 评论 -
[Codeforces1234F]Yet Another Substring Reverse
题意给你一个字符串SSS,你可以翻转一次SSS的任意一个子串。问翻转后SSS的子串中各个字符都不相同的最长子串长度。∣S∣≤106,∣|S|\le10^6,|∣S∣≤106,∣字符集∣≤20|\le20∣≤20题解可以发现通过翻转操作我们可以将任意两个子串拼在一起。这样子串所在的位置就不重要了,只需要记录字符的状态即可。注意到∣|∣字符集∣≤20|\le20∣≤20,考虑状压记录所...原创 2019-10-02 23:26:01 · 358 阅读 · 0 评论 -
[Codeforces1223F]Stack Exterminable Arrays
题意给一个序列进行栈操作,从左到右入栈,若当前入栈元素等于栈顶元素则栈顶元素出栈,否则当前元素入栈。若进行完操作后栈为空,这说这个序列是可以被消除的。给你一个长度为nnn的序列aaa,问aaa有多少子串是可以被消除的。题解定义fif_ifi表示序列ai,ai+1,...,ana_i,a_{i+1},...,a_nai,ai+1,...,an有多少可以被消除的子串那么fi=fj+...原创 2019-10-08 10:24:40 · 562 阅读 · 0 评论 -
[Codeforces1238E]Keyboard Purchase
题意一个只包含前mmm个字母的长度为nnn的字符串sss对于一个包含前mmm个字母的排列,设poscpos_cposc表示字母ccc在排列中的位置求一个排列使得∑i=2n∣poss[i]−poss[i−1]∣\sum_{i=2}^n|pos_{s[i]}-pos_{s[i-1]}|∑i=2n∣poss[i]−poss[i−1]∣最小,输出最小值即可题解设cntx,ycnt_{x...原创 2019-10-10 22:40:49 · 347 阅读 · 0 评论 -
[HNOI2018]道路
题意给你一颗二叉树,,,每个叶子节点iii有三个属性ai,bi,ciai,bi,cia_i,b_i,c_i每个非叶子节点都能标记往左右儿子的边中的一条边(((分别记为LLL边和RRR边)))设叶子节点iii到根的路径上没有被标记的LLL边有xxx条,R,R,R边有yyy条那么iii的贡献就是ci(ai+x)(bi+y)ci(ai+x)(bi+y)c_i(a_i+x)(b_i...原创 2018-04-15 17:41:26 · 857 阅读 · 0 评论 -
[Luogu4321]随机漫游
题意给你一幅图,每次给你一个点uuu和一个点集SSS问从uuu出发走完SSS集合(即SSS内点都至少经过一次)的期望步数 一个点uuu会等概率地走向其相邻的点题解这玩意是PKUWC2018D2T3PKUWC2018D2T3PKUWC2018D2T3随机游走的加强版思路和[HNOI2013]游走类似,也是通过高斯消元来DPDPDP考虑设f[S][i]f[S][i...原创 2018-04-02 20:25:55 · 402 阅读 · 0 评论 -
[HNOI2016]序列
题意给你一个序列,每次询问一个区间,求其所有子区间的最小值之和题解这里有两种方法,一种是离线的莫队,一种是在线算法一.莫队这题难就难在怎么由[l,r][l,r][l,r]推向[l,r+1][l,r+1][l,r+1]考虑他们之间的增量就是新增的[l,r+1],[l+1,r+1],…,[r+1,r+1][l,r+1],[l+1,r+1],…,[r+1,r+1][l...原创 2018-04-01 00:54:59 · 691 阅读 · 0 评论 -
[CodeForces757E]Bash Plays with Functions
题意:定义函数fr(n)fr(n)f_r(n)在r=0r=0r=0时为整数对(p,q)(p,q)(p,q)满足p∗q=np∗q=np*q=n且gcd(p,q)=1gcd(p,q)=1gcd(p,q)=1的有序数对个数在r≥1r≥1r\ge 1时,fr=∑u∗v=nfr−1(u)+fr−1(v)2fr=∑u∗v=nfr−1(u)+fr−1(v)2f_r=\sum_{u*v=n}\frac{f...原创 2018-03-10 22:34:10 · 319 阅读 · 0 评论 -
[CodeForces11D]A Simple Task
题意:求简单无向图的环数状压DP,f[u][s][v]DP,f[u][s][v]DP,f[u][s][v]为u−>vu−>vu->v的环经过路径状态为s的路径数这样会有重复,所以直接设f[s][u]f[s][u]f[s][u]表示sss中最小的点到u的路径数为了避免重复计算,回到的点为sss中最小的点(这是一个优化,少了枚举最小点这个循环)如果vvv是sss中最小的点那...原创 2018-03-10 22:37:38 · 397 阅读 · 0 评论 -
[NOIP2017]逛公园
题意:求dis(1,n)<=MinDis(1,n)+Kdis(1,n)<=MinDis(1,n)+Kdis(1,n)Day1Day1Day1的DPDPDP去哪里了?没错,你只要再注意一下K≤50K≤50K\le50就大概能想到这是一个与kkk有关的DPDPDP了①:考虑30pts:K=030pts:K=030pts:K=0 右转LuoguP1608路径统计(P1144最...原创 2018-03-10 23:02:28 · 681 阅读 · 0 评论 -
[CodeForces613D]Kingdom and its Cities
题意:标记一些点,问使得所有标记点不连通最少要去掉多少点首先如果一个点的父亲被标记了那么就可以直接返回−1−1-1了考虑建出虚树然后树形DPDPDP①:如果一个点被标记了,那么就要把他所有子树里有标记点的儿子都去掉②:如果一个点没有被标记,但是这个点有两颗以上的子树里有标记点那么这个点就要去掉,然后这棵子树就没有可标记点了③:如果一个点子树里只有一个/没有标记点那么就标记点...原创 2018-03-10 23:03:57 · 328 阅读 · 0 评论 -
[NOI2015]品酒大会
题意∀i∈[0,n)∀i∈[0,n)\forall i\in[0,n)求有多少对后缀满足Len(lcp)≥iLen(lcp)≥iLen(lcp)\ge i,以及满足条件的两个后缀的权值乘积的最大值题解大于等于可以变成求Len(lcp)=iLen(lcp)=iLen(lcp)=i,然后求一遍后缀和,后缀最大值即可考虑Len(lcp)Len(lcp)Len(lcp)就是这两个后...原创 2018-03-23 08:25:05 · 432 阅读 · 0 评论 -
[Bzoj1396]识别子串
题意∀i∈[1,n]∀i∈[1,n]\forall i\in[1,n]求包含iii并且在原串sss中只出现一次的子串的最短长度题解因为每个点parentparentparent树上的父亲肯定是当前节点所代表的串的后缀那么只出现一次的串就是parentparentparent树上的叶子节点考虑这个点所代表的len[i]−len[fa[i]]len[i]−len[fa[i]...原创 2018-03-23 08:46:44 · 484 阅读 · 1 评论 -
[CTSC2012]熟悉的文章
题意有多个主串,每次询问将询问串分成多个连续子串,如果一个子串长度≥L≥L\ge L且在主串中出现过就是合法的如果合法的子串总长度≥≥\ge询问串长的90%90%90\%,这个串就是合法的字符串,求使得询问串成为合法的字符串的最大的LLL题解先建好广义SAM,SAM,SAM,发现LLL满足单调性,所以可以二分答案考虑怎么checkcheckcheck用dp啊考虑一个...原创 2018-03-23 13:52:26 · 358 阅读 · 0 评论 -
[CodeForces939F]Cutlet
题意:有2×n2×n2\times n的时间去煎一块两面的肉给你kkk个不相交时间区间[li,ri][li,ri][l_i,r_i] 你可以在这些区间的时间内任意次翻转这块肉问是否存在合法的方案使得两面恰好都只煎了nnn分钟求最少翻转次数n≤105,k≤100n≤105,k≤100n\le10^5,k\le100 考虑暴力DP,fi,jDP,fi,jDP,f_{i,...原创 2018-03-14 10:09:57 · 513 阅读 · 0 评论 -
[NOI2007]生成树计数
题意一个nnn个点的树,点iii只能向[i−k,i−1][i−k,i−1][i-k,i-1]内的点连边,求有标号生成树的个数n≤1015,k≤5n≤1015,k≤5n\le10^{15},k\le5题解题面误导向系列,显然不能像他说的那样做吧因为发现kkk特别小,所以可以考虑用状压表示iii和前k−1k−1k-1个点的联通情况考虑DP,f[i][j]DP,f[i][j]...原创 2018-03-30 00:16:48 · 541 阅读 · 0 评论 -
[Jzoj5157]没有上司的舞会
题意在线的动态的《没有上司的舞会》⇒⇒\Rightarrow动态加点维护树的最大独立集,强制在线题解首先可以注意到每次加入一个点只会影响一条链上的dpdpdp值考虑一下离线怎么做考虑支持修改点权的带权最大独立集问题考虑链上的情况:建线段树,每个区间维护f[1/0][1/0]f[1/0][1/0]f[1/0][1/0]表示左端点选///不选,右端点选///不选...原创 2018-03-20 15:04:27 · 625 阅读 · 0 评论 -
[HNOI2013]游走
题意从111开始每次等概率随机选择一条边走下去,直到走到nnn为止定义一条边的期望是走到他的期望次数××\times他的编号让你给这些边编号,使得期望最小题解可以贪心地考虑期望大的边编号要小,期望小的编号要大定义pipip_i表示走到点iii的期望走过的次数,didid_i表示iii的点度考虑走过一条边(u,v)(u,v)(u,v)的期望次数Ei=pudu+pv...原创 2018-03-30 11:58:45 · 978 阅读 · 0 评论 -
[SDOI2008]Sandy的卡片
题意给你nnn个串,求最长公共子串定义两个如果长度相同,并且他们都加上一个数会变成一样的就相同题解其实说白了就是两个串的差分数组相同他们就相同当然如果两个差分数组的第一个数不同也没关系所有答案就是原来所有串的差分数组的Len(LCS)+1Len(LCS)+1Len(LCS)+1多串lcslcslcs参考模板[Spoj1812]LCS2[Spoj1812]LCS2...原创 2018-03-24 20:33:29 · 284 阅读 · 0 评论 -
[Bzoj3270]博物馆
题意一开始两个人分别站在sss和ttt,一个人在每个点有ppp的概率不动,或者等概率地随机走到一个相邻的点求两个人在每个点相遇的概率题解感觉是[HNOI2013][HNOI2013][HNOI2013]游走的加强版来着设 didid_i表示点iii的点度,pipip_i表示在iii点不动的概率 ai,jai,ja_{i,j}表示第一个人在iii点,第二个人...原创 2018-03-30 17:28:23 · 466 阅读 · 0 评论 -
[Usaco2010Hol]Dotp
题意一开始在111有个炸弹,在每个点有pqpq\frac pq的概率的爆炸,如果不爆炸则等概率地走向相邻的点求在每个点爆炸的概率题解设f[u]f[u]f[u]表示走到uuu的期望次数,dudud_u表示点度,初始f1=1f1=1f_1=1因为要不爆炸才能往下走,那么有f[u]=∑(u,v)∈E1dv(1−pq)f[v]f[u]=∑(u,v)∈E1dv(1−pq)f[...原创 2018-03-30 18:18:18 · 331 阅读 · 0 评论 -
[Spoj1812]LCS2
题意求nnn个串的LCSLCSLCS题解考虑怎么求两个串的LCSLCSLCS,也就是[Spoj1811][Spoj1811][Spoj1811]先对其中一个串建立SAMSAMSAM,令x=1,len=0x=1,len=0x=1,len=0(我的SAMSAMSAM从111开始)然后对于第二个字符串sss我们一位一位考虑根据SAMSAMSAM的性质1.1.1.如果xxx...原创 2018-03-21 15:50:29 · 811 阅读 · 0 评论 -
[AHOI2013]差异
题意求一个定值−2×−2×-2\times所有后缀的公共前缀题解前面那个定值是∑i=1n−1∑j=i+1ni+j=(n−1)×∑i=1ni=(n−1)∗n∗(n+1)2∑i=1n−1∑j=i+1ni+j=(n−1)×∑i=1ni=(n−1)∗n∗(n+1)2\sum_{i=1}^{n-1}\sum_{j=i+1}^ni+j=(n-1)\times\sum_{i=1}^ni=\f...原创 2018-03-21 17:48:42 · 1463 阅读 · 0 评论 -
[Bzoj3879]SvT
题意每次询问ttt个后缀两两的最长公共前缀之和题解嗯,SvT(Suffix Virtual Tree)SvT(Suffix Virtual Tree)SvT(Suffix\ Virtual\ Tree)模板,[AHOI2013][AHOI2013][AHOI2013]差异的加强版既然有∑t≤3×106∑t≤3×106\sum t\le 3...原创 2018-03-21 23:00:11 · 376 阅读 · 0 评论 -
[CodeForces750G]New Year and Binary Tree Paths
题意一颗无穷个节点的完全二叉树,编号满足线段树分配求有多少条树上的简单路径编号和为sss考虑一条链考虑从节点xxx开始走的一条节点个数是hhh的链假设一直往左子树里走,那么他的贡献是x∑i=0h−12i=(2h−1)xx∑i=0h−12i=(2h−1)xx\sum_{i=0}^{h-1}2^i=(2^h-1)x若链从下往上的第i∈[1,h)i∈[1,h)i\in[1...原创 2018-03-14 19:02:41 · 418 阅读 · 0 评论