dp
文章平均质量分 74
fyc_kabuto
一个蒟蒻程序员
展开
-
codeforces1129D. Isolation
题意:将一个序列分段,每段至多有kkk个数恰好出现一次,问方案数题解:n2n^2n2dp很容易,当(l,r)(l,r)(l,r)满足条件时f[l−1]−>f[r]f[l-1]->f[r]f[l−1]−>f[r]考虑怎么快速求出所有满足条件的fff的和记录一下每种颜色最后出现位置和次后出现位置,可以将题意转化为区间加,为所有值<=k&...原创 2019-02-26 10:32:27 · 403 阅读 · 2 评论 -
bzoj 3864: Hero meet devil
题意:对于0<=i<=|S|0<=i<=|S|0f[i][j]=f[i−1][j−1]+1,a[i]=b[j]f[i][j]=f[i−1][j−1]+1,a[i]=b[j]f[i][j]=f[i-1][j-1]+1,a[i]=b[j],假如将模式串的那一维提出来,差分后一定是一个01串,所以就可以状压了。 那么就预处理出对于一个状态,加一个字符后可以转移到的状态,然后...原创 2018-04-22 16:12:33 · 218 阅读 · 0 评论 -
AtCoder Grand Contest 002 F - Leftmost Ball
题意:有 n 种颜色的球,颜色分别标号为 1 到 n,每种颜色的球都有 k 个。这 nk 个球从左到右排成一个序列,接着把每种颜色最靠左的球涂成颜色 0。问有多少种最终可能得到的颜色序列。题解:思路不错,关键是要转化模型。 先忽略颜色,最后再乘个阶乘。 那么一个合法的序列相当于上图的拓扑序,那么就转成了一个拓扑序的计数问题。 考虑构造这个序列,就是说从后往前填如节点,定义f[...原创 2018-04-17 15:42:34 · 306 阅读 · 0 评论 -
bzoj 1531: [POI2005]Bank notes
题意:Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,…, bn. 但是每种硬币有数量限制,现在我们想要凑出面值k求最少要用多少个硬币。题解:多重背包+单调队列裸题。 空间开小一百倍调一晚上 code:#include<cstdio>#include<cstdlib>...原创 2018-03-20 22:04:07 · 327 阅读 · 0 评论 -
5196: [Usaco2018 Feb]Taming the Herd
题意一大清早,Farmer John就被木材破裂的声音吵醒了。是这些奶牛们干的,她们又逃出牛棚了!Farmer John已经厌 烦了奶牛在清晨出逃,他觉得受够了:是时候采取强硬措施了。他在牛棚的墙上钉了一个计数器,追踪从上次出逃 开始经过的天数。所以如果某一天早上发生了出逃事件,这一天的计数器就为0;如果最近的出逃是3天前,计数器 读数就为3。Farmer John一丝不苟地记录了每一天...原创 2018-03-08 17:31:15 · 781 阅读 · 0 评论 -
bzoj 2287: 【POJ Challenge】消失之物
dp+容斥原创 2018-01-07 16:07:50 · 196 阅读 · 0 评论 -
bzoj 4818: [Sdoi2017]序列计数
题意:Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数。Alice还希望这n个数中,至少有一个数是质数。Alice想知道,有多少个序列满足她的要求。题解:矩乘优化dp。 因为p很小,所以每个数直接mod pmod\ p就好了。 f[i][j]f[i][j]表示前i个数,mod pmod\ p为j的方案数。 显然可以矩乘。 然后原创 2018-01-23 17:16:41 · 193 阅读 · 0 评论 -
bzoj 3925: [Zjoi2015]地震后的幻想乡
题意:傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们。 这不,幻想乡突然发生了地震,所有的道路都崩塌了。现在的首要任务是尽快让幻想乡的交通体系重新建立起来。幻想乡一共有n个地方,那么最快的方法当然是修复n-1条道路将这n个地方都连接起来。 幻想乡这n个地方本来是连通的,一共有m条边。现在这m条边由于地震的关系,全部都毁坏掉了。每...原创 2018-01-05 09:21:44 · 279 阅读 · 0 评论 -
bzoj 3677: [Apio2014]连珠线
树形dp好题原创 2018-01-04 15:48:29 · 436 阅读 · 0 评论 -
bzoj 1875: [SDOI2009]HH去散步
思路dp+矩乘原创 2017-12-27 15:24:49 · 210 阅读 · 0 评论 -
bzoj 2660: [Beijing wc2012]最多的方案
dp好题原创 2017-12-27 13:11:15 · 234 阅读 · 0 评论 -
bzoj 2669: [cqoi2012]局部极小值
状压dp+容斥。原创 2017-10-31 21:28:05 · 248 阅读 · 0 评论 -
bzoj 1801: [Ahoi2009]chess 中国象棋
题意:在n*m的棋盘中放炮,使得他们不能相互攻击的方案数。题解:也就是说同一行/列不能有超过两个炮。 似曾相识的感觉(其实是我SB没想到更简单的状态表示) 于是我把他当成二分图,同一个点至多匹配两次,dp统计方案数。 f[i][j][k]f[i][j][k]表示左边用了i个点,右边j个点匹配了两次,k个点匹配了一次。 后来发现其实等价于前i行,j个列有两个炮,k个列一个炮。 瞎转移就好了,原创 2017-09-01 20:55:05 · 337 阅读 · 0 评论 -
bzoj 4806: 炮
同bzoj1801改个模数。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#define LL long longusing namespace std;const LL mod=999983;LL n,m,c[150][3],f[110][110][110];void pre()原创 2017-09-01 20:56:58 · 269 阅读 · 0 评论 -
bzoj 4361: isn
dp+树状数组+容斥原创 2017-12-18 21:35:34 · 322 阅读 · 0 评论 -
bzoj 2553: [BeiJing2011]禁忌
AC自动机+dp+矩乘原创 2018-01-02 08:46:54 · 255 阅读 · 0 评论 -
luogu P4233 射命丸文的笔记
题意:给出nnn,求对于任意的1≤i≤n1≤i≤n1≤i≤n,求在所有i个点且有哈密顿回路的竞赛图中,哈密顿回路的期望数量是多少。答案模998244353。题解:这个期望就是所有竞赛图的哈密顿回路数量/存在哈密顿回路的竞赛图的数量。 前面那个挺好做,考虑每条哈密顿回路的贡献,就是(n−1)!∗2n(n−1)2−n(n−1)!∗2n(n−1)2−n(n-1)!*2^{\frac{n(n...原创 2018-04-21 10:45:34 · 293 阅读 · 0 评论 -
Codeforces 960G Bandit Blues 第一类斯特林数+分治FFT
懒人模式:orz beginend code:#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#define LL long longusing namespace std;const LL p=998...原创 2018-04-21 10:55:20 · 402 阅读 · 0 评论 -
loj 2540. 「PKUWC2018」随机算法
题意:传送门题解:算出所有合法方案数然后算期望。 f[i][S]f[i][S]f[i][S]表示已经用了iii个点,当前最大独立集是SSS,直接转移即可。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#define L...原创 2018-08-27 16:15:15 · 534 阅读 · 0 评论 -
codeforces814E. An unavoidable detour for home
题意:设disxdis_xdisx为x到1的唯一最短路(必须唯一),则满足每个点度数=dxd_xdx且disx&lt;=disx+1dis_x&lt;=dis_{x+1}disx<=disx+1的图有多少种n&lt;=50,2&lt;=dx&lt;=3n&lt;=50,2&lt;=d_x&lt;=3n<=50,...原创 2019-02-28 21:49:22 · 310 阅读 · 0 评论 -
bzoj 5451: 字符串
题意:给定正整数m以及n个01串s1~sn,你需要求出长度为2m的反对称的包含这n个01串作为子串的01串的个数。对998244353取模。一个01串s是反对称的当且仅当它对于1&lt;=i&lt;=∣s∣1&lt;=i&lt;=|s|1<=i<=∣s∣都满足s[i]≠s[∣s∣−i+1]s[i]≠s[|s|-i+1]s[i]̸=s[∣s∣−i+1...原创 2019-02-24 19:57:39 · 617 阅读 · 0 评论 -
3090: Coci2009 [podjela]
题意:有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树.每个农民初始时获得 X 的钱.每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民.对于每个农民给定一个值 v_i, 求(1) 最少需要多少次操作, 使得每个农民最终拿到的钱 >= 给定的值.题解:想到树形背包dp就很好做了。显然每对人只会交易一次,所以总数不超...原创 2019-01-30 09:30:24 · 332 阅读 · 0 评论 -
AtCoder Grand Contest 030F - Permutation and Minimum
题意:设bi=min(a2i,a2i−1)b_i=min(a_{2i},a_{2i-1})bi=min(a2i,a2i−1)先给出aaa部分,将其补全,问bbb数列的方案数。题解:n越小越难系列首先将两位都确定得踢掉,然后将剩下的数拿出来,有些位置是确定的,有cic_ici表示。那么现在两两配对(不能两个cic_ici都为1),且只关心较小的那个。从后往前DP。记 fi,j...原创 2019-01-09 16:55:48 · 274 阅读 · 0 评论 -
AtCoder Grand Contest 030D - Inversion Sum
题意:给你一个数列&a_i&,有若干操作,可以交换a[xi],a[yi]a[x_i],a[y_i]a[xi],a[yi],你也可以不进行这个操作。对于所有2Q2^Q2Q种操作方式,问逆序对总和是多少。题解:容易想到fi,x,yf_{i,x,y}fi,x,y表示前i个操作,使得a[x]&lt;a[y]a[x]&lt;a[y]a[x]<a[y]的方案...原创 2019-01-09 16:32:00 · 318 阅读 · 0 评论 -
2728: [HNOI2012]与非
题意:定义a NAND b=!a&b,问用给出的数通过NAND操作能构成区间内多少个数。题解:经过各种实验,发现NAND操作可以替代任何其他逻辑运算操作。如a&b=!aNANDb,!a=aNANDa或和异或也显然可以。那么似乎我们可以构造出所有数了?但是有个问题,假如对于每个数都有第i位和第j为相等,显然最后这两位也是一样的。所以题意转化成了某些位置必须相同,且在[...原创 2019-01-15 11:45:42 · 395 阅读 · 0 评论 -
4665: 小w的喜糖
题意:求数字可重的错排。题解:考虑2n2^n2n容斥,枚举哪些位一样,就是∑T∈S(−1)∣T∣(n−∣T∣)!Π(ai−bi)!\sum_{T \in S}(-1)^{|T|}\frac{(n-|T|)!}{\Pi(a_i-b_i)!}∑T∈S(−1)∣T∣Π(ai−bi)!(n−∣T∣)!其中bib_ibi为每种颜色已用个数。考虑dp这个式子,f[i][j]f[i][j]f...原创 2019-01-25 10:41:57 · 261 阅读 · 0 评论 -
hdu 5181 numbers
题意:问多少种出栈方式满足所有限制:xix_ixi在yiy_iyi前先出栈。题解:容易看出,一个合法的括号序列一定对应一棵先序遍历为0~n的树(加个虚根)。而这些限制就是当xi&lt;yix_i&lt;y_ixi<yi,则yiy_iyi在xix_ixi子树外,当xi&gt;yix_i&gt;y_ixi>yi,则yiy_iyi在x...原创 2019-01-14 20:32:26 · 221 阅读 · 0 评论 -
4664: Count
题意:小叶子的桌面上有 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。小叶子想要知道,n+e 到底...原创 2019-01-14 16:37:36 · 264 阅读 · 0 评论 -
4498: 魔法的碰撞
题意:魔法总是令战斗的局面变幻莫测。然而魔力的碰撞则更是天马行空,甚至会出现无法控制而自取灭亡的情况。因此,魔力碰撞总是没有办法的办法。不过在战场上大家可不会想太多了:看到敌人,直接一阵法术秒杀之,规则神马的都是浮云了。因此,必须布阵时就避免可能的魔力碰撞。设想有一条长度为L的战线,你可以把你的魔法师们安排在战线上的每个格子。每一个魔法师都有一个攻击范围di,排兵时必须保证任意两个魔法师的攻击...原创 2019-01-14 16:31:37 · 262 阅读 · 0 评论 -
Educational DP Contest / DP まとめコンテスト部分题解
前言:dp太差,开个大坑因为太多题了,只做现场AC小于300的题原创 2019-01-07 09:57:28 · 1748 阅读 · 6 评论 -
4824: [Cqoi2017]老C的键盘&&3167: [Heoi2013]Sao
题意:对一棵树的边定向,求拓扑序方案数。题解:因为两颗子树相对独立,所以可以树形dp。f[x][i]f[x][i]f[x][i]表示x这棵子树,根节点在序列第i位,转移什么就随便写写啦对于n3n^3n3就怎么写都没问题,而n2n^2n2的话,需要更严格的按子树大小合并,即对于合并大小分别为totx,totytot_x,tot_ytotx,toty的子树,需要枚举i,ji,ji,j贡献...原创 2019-01-03 17:14:23 · 428 阅读 · 0 评论 -
AtCoder Grand Contest 005 d
题意:给出n和k,问有多少个长度为n的排列p使得对于任意的i,有∣pi−i∣≠k|p_i−i|≠k∣pi−i∤=k。n&lt;=2000n&lt;=2000n<=2000题解:考虑容斥,即计算至少有i个位置满足∣pi−i∣=k|p_i-i|=k∣pi−i∣=k。关键就是要求出强制kkk个满足测方案数。将位置和数值建成二分图,相当于求选择k对合法匹配的方案数...原创 2018-10-23 15:19:42 · 194 阅读 · 0 评论 -
bzoj 4011: [HNOI2015]落忆枫音
题意 :问一个dag+一条边的图的生成树个数,树边为父亲连向儿子,1为根。题解:dag的生成树计数显然就是Πi=2ndeg(i)\Pi_{i=2}^ndeg(i)Πi=2ndeg(i)。当我们多了一条边,再套用上式的话,就会算出不合法的情况。这些情况显然就是含有包含额外边的环。所以相当于与求出Y−&gt;XY-&gt;XY−>X的路径,除去它们的贡献,再求个和。...原创 2018-10-23 10:23:47 · 92 阅读 · 0 评论 -
AtCoder Regular Contest 096 F - Sweet Alchemy
blue2333转载 2018-09-29 10:34:30 · 406 阅读 · 0 评论 -
bzoj 3622: 已经没有什么好害怕的了
dp+组合数学+容斥好题原创 2017-12-18 09:56:39 · 281 阅读 · 0 评论 -
bzoj 12月月赛D小 Q 的书架
dp+分治原创 2017-12-31 11:14:31 · 343 阅读 · 0 评论 -
bzoj 2726: [SDOI2012]任务安排
cdq分治+斜率优化原创 2017-12-24 15:08:15 · 255 阅读 · 0 评论 -
bzoj 1966: [Ahoi2005]VIRUS 病毒检测
题意:科学家们在Samuel星球上的探险仍在继续。非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的冰湖!机器人在这个冰湖中搜集到了许多RNA片段运回了实验基地。科学家们经过几个昼夜的研究,发现这些RNA片段中有许多是未知的病毒!每个RNA片段都是由A、C、T、G组成的序列。科学家们也总结出了Samuel星球上的“病毒模版片段”。一个模版片段是由A、C、T、G的序列加上通配符 *原创 2017-09-30 14:56:44 · 272 阅读 · 0 评论 -
bzoj 4417: [Shoi2013]超级跳马
dp+矩乘原创 2017-10-08 09:00:28 · 394 阅读 · 0 评论 -
bzoj 1835: [ZJOI2010]base 基站选址
题意:用最少代价,按题目要求覆盖所有点。题解:不怎么会做,orz状态表示,知道f[i][j]f[i][j]表示前i个,建j个塔i号点必建并且全部覆盖的最小代价。 因为只考虑i前的,所以统计答案就可以多加一个无限远的点,转移到那里就是答案了。 于是有f[i][j]=min(f[k][j−1]+cost(k,i))+c[i]f[i][j]=min(f[k][j-1]+cost(k,i))+c[i]原创 2017-09-21 08:44:11 · 317 阅读 · 0 评论