DP
200815147
这个作者很懒,什么都没留下…
展开
-
[BZOJ3191][洛谷P2059][JLOI2013]卡牌游戏 概率DP
概率DP原创 2017-10-24 16:40:27 · 390 阅读 · 0 评论 -
caioj概率期望DP三连刷
前言:概率期望DP太弱了,来caioj刷一发基础题。1269:期望DP,考虑从已知状态开始推。设f[i][j]f[i][j]f[i][j]表示已收集i种bug,属于j个子系统,还需要的期望天数,初始化显然为f[n][s]=0f[n][s]=0f[n][s]=0。然后利用公式f=∑(f′×p)+wf=∑(f′×p)+wf=\sum(f'\times p)+w,推出DP方程,f′f′f'为...原创 2018-04-11 16:48:30 · 180 阅读 · 0 评论 -
1009: [HNOI2008]GT考试 AC自动机+矩阵乘法优化DP
Description 阿申准备报名参加GT考试,准考证号为N位数X1X2….Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。 他的不吉利数学A1A2…Am(0<=Ai<=9)有M位,不出现是指X1X2…Xn中没有恰好一段等于A1A2…Am. A1和X1可以为0题解:这题挺简单、挺套路的啊,把不吉利数字的AC自动机建出来,答案就相当于走完n...原创 2018-04-05 14:46:23 · 180 阅读 · 0 评论 -
1767: [Ceoi2009]harbingers 斜率优化
Description 给定一颗树,树中每个结点有一个邮递员,每个邮递员要沿着唯一的路径走向capital(1号结点),每到一个城市他可以有两种选择: 1.继续走到下个城市 2.让这个城市的邮递员替他出发。 每个邮递员出发需要一个准备时间W[I],他们的速度是V[I],表示走一公里需要多少分钟。 现在要你求出每个城市的邮递员到capital的最少时间(不一定是他自己到capital,可以是别人帮...原创 2018-04-12 18:30:49 · 351 阅读 · 0 评论 -
[BZOJ]3294: [Cqoi2011]放棋子 DP
DP原创 2017-10-08 10:24:39 · 474 阅读 · 0 评论 -
1855: [Scoi2010]股票交易 单调队列优化DP
Description 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律。 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价为每股APi,第i天的股票卖出价为每股BPi(数据保证对于每个i,都有APi>=BPi),但是每天不能无限制地交易,于是股票交易所规定第i天的一次买入至多只能购买ASi股,一次卖出至多只能卖出...原创 2018-07-25 21:35:06 · 171 阅读 · 0 评论 -
#2575. 「TJOI2018」party DP
题解:据说这样的套路叫DP套DP?之前也做过一道最长上升子序列,大概思路都是在DP中表示另外一个DP数组的状态,比如这道题就是利用f[i][j]f[i][j]f[i][j]与f[i][j−1]f[i][j−1]f[i][j-1]最多只相差111(f[i][j]f[i][j]f[i][j]表示兑奖串前iii位与奖章串前jjj位的最长公共子序列),利用差分+状态压缩表示出某一iii的所有f[i][...原创 2018-08-14 20:28:02 · 257 阅读 · 0 评论 -
Codeforces 613D Kingdom and its Cities 虚树
题解:上次学虚树形同虚设,今天再来补补,先做道裸题爽爽。 虚树其实就是用一个栈维护某一条链,然后把关键点构成一棵树。 对于这题,建出虚树后,f[0][x]f[0][x]f[0][x]表示以xxx为根的子树中没有关键点连出去,f[1][x]f[1][x]f[1][x]定义类似,直接DP即可。注意初始化。代码:#include<bits/stdc++.h>using na...原创 2018-08-22 17:24:25 · 129 阅读 · 0 评论 -
「PKUWC2018」随机算法 DP
题解:一开始想的是对于每个最大独立集计算它的贡献,但是不行。然后就考虑一位一位填数,f[i][S]f[i][S]f[i][S]表示填了iii个数,当前的最大独立集状态为SSS的方案数。然后实际上点可以分为333类,一是最大独立集中的点,二是对最大独立集没有贡献的点,三是会使最大独立集扩大的点,清楚三种点的数量,转移分是否会使最大独立集变大来转移即可。复杂度O(n22n)O(n22n)O(n^2...原创 2018-08-27 21:37:01 · 418 阅读 · 0 评论 -
20180409胡策C 线段树优化DP
题目描述:题解:O(n2)O(n2)O(n^2)DP应该一眼秒吧……f[i]f[i]f[i]表示前i的最小花费,sw[i]sw[i]sw[i]表示w的前缀和,那么有DP方程:f[i]=min(f[i],f[j]+(h[i]−h[j])2+sw[i−1]−sw[j])(1<=j<i),f[1]=0f[i]=min(f[i],f[j]+(h[i]−h[j])2+sw[i−1...原创 2018-04-09 17:37:47 · 218 阅读 · 0 评论 -
51nod 1406 与查询 DP
有n个整数。输出他之中和x相与之后结果为x的有多少个。x从0到1,000,000题解:令t=akt=akt=a_k&jjj,设f[i][j]f[i][j]f[i][j]表示ttt的前iii位与jjj的前iii位完全一样,后面的位与jjj后面的位完全一样的akaka_k有多少个,初始化为f[0][ai]=cnt[ai]f[0][ai]=cnt[ai]f[0][a_i]=cnt[a...原创 2018-03-14 17:18:15 · 207 阅读 · 0 评论 -
[BZOJ]1087: [SCOI2005]互不侵犯King 状态压缩DP
Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。Input 只有一行,包含两个数N,K ( 1 Output 方案数。Sample Input3 2Sample Output16这种题目一看就原创 2016-12-15 13:54:49 · 326 阅读 · 0 评论 -
5004: 开锁魔法II 概率DP
概率DP原创 2017-12-15 13:19:57 · 240 阅读 · 0 评论 -
[BZOJ]1875: [SDOI2009]HH去散步 矩阵乘法优化DP
矩阵乘法优化DP原创 2017-12-26 09:59:33 · 240 阅读 · 0 评论 -
[codevs]3002 石子归并 3 四边形不等式优化DP
题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。题解:经典的O(n3)O(n^3)相信谁都会,但是本题需要用到四边形不等式优化到O(n2)O(n^2)。四边形不等式适用于以下形式的DP方程:f[i][j]=min原创 2018-01-16 15:08:28 · 176 阅读 · 0 评论 -
Codeforces932E DP 组合数学
题解:其实比赛时就想的差不多了。我是从xkxkx^k入手的,看到这个,我就想到:现在有xxx种东西,放到kkk个不同箱子里的方案数。然后k<=5000k<=5000kkkk入手,f[i][j]f[i][j]f[i][j]表示到第iii个箱子,放了jjj种东西的方案数,然后最后的答案就是∑min(n,k)i=1f[k][i]×2n−i∑i=1min(n,k)f[k][i]×2n−i\...原创 2018-02-16 20:23:21 · 490 阅读 · 1 评论 -
NOIP2017D1T3逛公园 拆点+最短路+DP
题目描述 策策同学特别喜欢逛公园。公园可以看成一张NN 个点MM 条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,NN 号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。策策每天都会去逛公园,他总是从1号点进去,从NN 号点出来。策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事...原创 2018-03-14 14:55:01 · 691 阅读 · 0 评论 -
NOIP2017D2T2 宝藏 状压DP
题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度。小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多。小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面...原创 2018-03-14 16:48:47 · 469 阅读 · 0 评论 -
[TYVJ]P4869 罪犯分组 状态压缩DP
状压DP原创 2017-09-20 20:19:24 · 346 阅读 · 0 评论 -
[BZOJ]2004: [Hnoi2010]Bus 公交线路 状态压缩DP+矩阵乘法
状态压缩DP+矩阵乘法原创 2017-08-22 15:43:08 · 426 阅读 · 0 评论 -
「FJOI2016」建筑师 DP 数学
题解:先考虑暴力。把数字从大到小往序列中插,就可以得到一个DP的方法:f[i][j][k]f[i][j][k]f[i][j][k]表示当前插了前iii大的数,左边能看到jjj个,右边能看到kkk个,转移显然:f[i][j][k]=f[i−1][j][k]×(i−2)+f[i−1][j−1][k]+f[i−1][j][k−1]f[i][j][k]=f[i−1][j][k]×(i−2)+f[i−1...原创 2018-08-31 11:38:13 · 255 阅读 · 0 评论 -
5359: [Lydsy1805月赛]寻宝游戏 DP
题解:选择kkk个位置交换实际上是一条路径上,有kkk个属于这条路径上的权值不计贡献,有kkk个不属于路径的权值计入贡献。所以直接DP,f[i][j][p][q]f[i][j][p][q]f[i][j][p][q]表示到了(i,j)(i,j)(i,j),路径上有ppp个权值不计贡献,在前i−1i-1i−1行和第iii行的前jjj个没选的权值中有qqq个权值计入贡献即可。代码:#include...原创 2018-09-25 16:34:57 · 163 阅读 · 0 评论 -
51nod 1597 有限背包计数问题 DP 根号分治
题解:考虑根号分治。对于体积≤n\le\sqrt n≤n的东西,发现背包可以用一个前缀和优化。对于体积&gt;n&gt;\sqrt n>n的东西,实际上每个物品都可以看做有无限个 ,就是求把某个数分成若干份,每份都至少为n+1\sqrt n+1n+1的方案数,由于分成的份数不会超过n\sqrt nn,所以用一个简单的DP就行了。代码:#include<...原创 2018-11-05 21:55:37 · 289 阅读 · 0 评论 -
[UOJ]#410. 【IOI2018】会议 笛卡尔树+DP+线段树
Solution考虑DP。设fl,rf_{l,r}fl,r表示lll~rrr的答案,考虑这样一种转移。设[l,r][l,r][l,r]区间最大值位置为ppp,那么显然所有人要么集中到ppp左边的最优点,要么集中到ppp右边的最优点,所以方程为fl,r=min(fl,p−1+(r−p+1)hp,fp+1,r+(p−l+1)hp)f_{l,r}=\min(f_{l,p-1}+(r-p+1)h_...原创 2019-02-13 10:58:11 · 408 阅读 · 0 评论 -
Atcoder Yahoo Programming Contest 2019 F Pass DP
Solution观察最后的序列,对于1≤i≤n1\le i\le n1≤i≤n,前iii个球只会由前iii个人传来,而后nnn个球则没有限制。有了这个,直接简单DP,fi,jf_{i,j}fi,j表示前iii个球,用了jjj个蓝球的方案数,最后乘个组合数就好了。Code#include<bits/stdc++.h>using namespace std;#define LL...原创 2019-02-13 11:05:11 · 292 阅读 · 0 评论 -
[LOJ]#2552. 「CTSC2018」假面 DP
Solution对于op=0op=0op=0,直接维护fi,jf_{i,j}fi,j表示第iii个人此时剩下jjj点生命值的概率即可。对于op=1op=1op=1,需要知道每个人在存活的情况下存活iii个人的概率,这其实是可以DP的,用的是消失之物这道题的一个做法,设sjs_jsj为在kkk个人中选jjj个存活的概率和,hi,jh_{i,j}hi,j为令第iii个人必定死亡的情况下选出j...原创 2019-02-27 07:40:42 · 169 阅读 · 0 评论 -
[LOJ]#2554. 「CTSC2018」青蕈领主 DP+分治NTT
Solution首先,连续段只会包含而不会相交,而且每个连续段向第一个包含它的连续段连边,就会形成一个树的结构。这个如果无法理解可以看LCA今年营员交流。然后设当序列为1,1,1...n1,1,1...n1,1,1...n的时候的答案为fnf_nfn,每个点的儿子个数为bib_ibi,那么ans=Πi=1nfbi+1ans=\Pi_{i=1}^n f_{b_i+1}ans=Πi=1nfb...原创 2019-02-27 08:05:05 · 238 阅读 · 0 评论 -
[BZOJ]4844: [Neerc2016]Foreign Postcards 概率DP
Descriptionls是一名集邮爱好者,他专门有一个栈来存放他的所有的邮票,但ls同时也是一名很粗心的人,有一些邮票可能放反了(上下颠倒),有一天他想把他的邮票拿出来向他的妹子炫耀,但因为有一些邮票可能反了,于是ls就想把那些邮票矫正方向,但ls特别懒,他觉得一张一张矫正太费时间了,即使是要给妹子看的,他也不想费太多时间,于是ls就想出了一种奇迹淫巧:1.假设栈中还剩n张邮票,他每次从1到...原创 2019-03-14 15:20:11 · 356 阅读 · 0 评论 -
[BZOJ]5219: [Lydsy2017省队十连测]最长路径 DP
Description在Byteland一共有n个城市,编号依次为1到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i和j,在它们之间有且仅有一条单向道路,方向要么是i到j,要么是j到i。换句话说,这是一个n个点的竞赛图。Byteasar居住在1号城市,他希望从1号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。请写一个程序,帮助Byteasar计算有...原创 2019-03-11 07:26:48 · 247 阅读 · 0 评论 -
[BZOJ]4987: Tree 树形DP
Description从前有棵树。找出K个点A1,A2,…,Ak。使得∑dis(AiAi+1),(1<=i<=K-1)最小。Solution这道题首先要用到一个结论,即ans=最小的包含A1到Ak的连通块中所有边的和×2−这个连通块直径ans=最小的包含A_1到A_k的连通块中所有边的和\times 2-这个连通块直径ans=最小的包含A1到Ak的连通块中所有边的和×2−...原创 2019-03-13 17:48:55 · 484 阅读 · 0 评论 -
[LOJ]#2731. 「JOISC 2016 Day 1」棋盘游戏 DP
Solution首先判断无解:四个角没有棋子或者第一、三行连续两个没有棋子。然后通过观察可以发现,按照空格的四连通块来划分的话,每个连通块之间是互不影响的。所以可以对每个连通块分别DP,最后再用组合数把各个连通块给拼起来。设fi,j,0/1f_{i,j,0/1}fi,j,0/1表示第二行的第iii个空格,是当前这个连通块第jjj个填的,填的时候是上下填好还是左右填好,如果上下左右都已经填好...原创 2019-04-03 07:26:59 · 244 阅读 · 1 评论 -
[BZOJ]4032: [HEOI2015]最短不公共子串 SAM+DP+hash
Description在虐各种最长公共子串、子序列的题虐的不耐烦了之后,你决定反其道而行之。一个串的“子串”指的是它的连续的一段,例如bcd是abcdef的子串,但bde不是。一个串的“子序列”指的是它的可以不连续的一段,例如bde是abcdef的子串,但bdd不是。下面,给两个小写字母串A,B,请你计算:(1) A的一个最短的子串,它不是B的子串(2) A的一个最短的子串,它不是B的...原创 2019-01-16 22:34:38 · 185 阅读 · 0 评论 -
[BZOJ]2669: [cqoi2012]局部极小值 容斥+状压DP
Description有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次。如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值。给出所有局部极小值的位置,你的任务是判断有多少个可能的矩阵。Solution这题的突破口是局部极小值的格子不会太多,最多888个,因为每个局部极小值周围888格都不能是。之前一直想着状压行或列,其实是状压这个极小值...原创 2019-01-16 22:26:49 · 199 阅读 · 0 评论 -
[BZOJ]3090: Coci2009 [podjela] 树形DP
Description有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树.每个农民初始时获得 X 的钱.每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民.对于每个农民给定一个值 v_i, 求(1) 最少需要多少次操作, 使得每个农民最终拿到的钱 >= 给定的值.Solution这种题都被出烂了……但是我还是思考了挺久...原创 2019-01-08 21:39:31 · 330 阅读 · 0 评论 -
[BZOJ]5125: [Lydsy1712月赛]小Q的书架 DP+决策分治
题解:fi,jf_{i,j}fi,j表示前iii个数分成jjj段的最小代价,显然对于同一个jjj,决策端点是单调右移的,所以可以用分治来优化转移。solve(j,l,r,L,R)solve(j,l,r,L,R)solve(j,l,r,L,R)表示求出fl,jf_{l,j}fl,j到fr,jf_{r,j}fr,j,这些状态的决策点为[L,R][L,R][L,R]。求出midmidmid,暴力...原创 2018-12-26 14:18:47 · 244 阅读 · 1 评论 -
[LOJ]#2117. 「HNOI2015」实验比较 DP
题解:这题不会做……一开始以为是拓扑序计数,觉得不太可做,后来仔细看题目才发现只有树的情况(有环则无解),然而还是不会。难点是如何将两个状态合并。如果只记录方案数的话,是无法将两个状态合并的。所以设计状态时加多一维。fi,jf_{i,j}fi,j表示以iii为根的子树,分为jjj段的方案数,这里的每一段都是用等于号相连,而段与段之间用小于号相连,这样就可以转移了。具体一点的话就是枚举合并后...原创 2018-12-27 10:30:29 · 192 阅读 · 1 评论 -
[LOJ]#2115. 「HNOI2015」落忆枫音 DP
题解:先考虑不加边怎么做。仔细思考一下,每个非根节点随机选一个父亲,组成的都是合法的树,所以答案即为Πi=2ndegi\Pi_{i=2}^ndeg_iΠi=2ndegi。加了这条边后,如果这条边终点为111或者是自环,那么答案不会因为加了这条边而改变。否则会统计到不合法的情况,即出现了一个环,不会出现更多环,因为新加入的边一定在环中且每个点只有一个父亲。所以可以减去不合法方案。对于...原创 2018-12-27 20:15:02 · 183 阅读 · 0 评论 -
[LOJ]#6191. 「美团 CodeM 复赛」配对游戏 期望DP
Description:有 n 个人排成一排,一开始全部面向前方,然后随机朝左或是朝右转。然后我们不断审查这个队列,每次选择两个面对面的相邻的人,将他们从队列中取出。例如(> 表示向右,< 表示向左):队列 >>><<< 的消除过程为,>>><<< 到 >><&am原创 2018-12-29 10:59:09 · 214 阅读 · 0 评论 -
Codeforces 960G. Bandit Blues 分治NTT+第一类斯特林数+DP
题解:考虑最简单的DP,fi,jf_{i,j}fi,j表示i个数的排列,上升序列长度为j的方案数,考虑从大到小放数字,即最后一次放最小的数字,容易得到转移fi,j=fi−1,j−1+(i−1)fi−1,jf_{i,j}=f_{i-1,j-1}+(i-1)f_{i-1,j}fi,j=fi−1,j−1+(i−1)fi−1,j,这其实是第一类斯特林数的递推式。枚举n放在哪里,答案为∑i=1n...原创 2019-01-02 17:26:17 · 167 阅读 · 0 评论 -
[BZOJ]4664: Count DP
Description小叶子的桌面上有 n 本高度不相同的书,n+e 现在需要把这些书按照一定的顺序摆放好。假设第 i 本书的高度为 h[i],n+e 的摆放用一个 1~n的排列 pi 来表示。定义一个摆放的混乱程度:|h[p2]-h[p1]|+|h[p3]-h[p2]|+……+|h[pn]-h[pn-1]|,即相邻两本书的高度差的绝对值之和。已知合法的摆放要求其混乱程度不超过 L。小叶子想要知...原创 2019-01-12 11:27:21 · 385 阅读 · 0 评论