dp
文章平均质量分 72
forever_shi
但行好事,莫问前程;行你所行,无问西东!
展开
-
CF285E Positions in Permutations dp 组合 容斥
题目链接题意:给你一个nnn一个kkk,规定对于一个排列,如果一个位置iii填的数是i+1i+1i+1或者i−1i-1i−1,那么iii就是一个好位置。求有kkk个好位置的长度为nnn的排列数。模109+710^9+7109+7。n,k<=1000n,k<=1000n,k<=1000前言:这个题年前一段时间就见了,年后快元宵节了才弄好,确实是最近问题巨大,要好好反思。而且这题很多二项式反演或者等价容斥也没大搞明白,用了一种比较好懂的方法写了。有空还是应该好好研究一下二项式反演和容斥原创 2021-02-24 00:30:55 · 120 阅读 · 1 评论 -
CF1467D Sum of Paths dp
题目链接题意:给你一个长度为nnn的序列,其中第iii个位置权值为aia_iai,要有kkk次移动,每次移动向左或向右移动一格,不能出边界(到000或者n+1n+1n+1),对于这样一个连续移动kkk次后得到的长度为k+1k+1k+1的经过位置序列,我们称之为好序列,它的权值是经过的每一个位置的aia_iai之和,其中多次经过的话要多次累加。现在对于所有起始位置,求所有好序列的权值和,并且有qqq次对序列权值的修改。答案对1e9+71e9+71e9+7取模。n,k<=5000,q<=2原创 2021-01-10 18:13:52 · 291 阅读 · 4 评论 -
CF1442D Sum 分治 背包dp
题目链接题意:给你nnn个单调不降序列,要从中取kkk个数,每次可以取一个非空序列的第一个元素,并将这个元素从这个序列中删去,问你取的kkk个数得到的最大权值和是多少。n,k<=3000,n,k<=3000,n,k<=3000,元素总数<=1e6<=1e6<=1e6题解:对现在的我来说还是一个挺神仙的题。我觉得我分治水平挺差的,每次见到分治题都会大呼神仙。暴力做法是背包dp并合并背包,然后显然是O(nk2)O(nk^2)O(nk2)的。然后就没有然后了,应该没原创 2020-11-18 17:26:50 · 438 阅读 · 4 评论 -
ARC107 D Number of Multisets dp
题目链接题意:给你两个正整数n,kn,kn,k,求用恰好nnn个数组成一个多重集,其中数字之和为kkk,且每个数字只能选12i,i∈N\frac{1}{2^i},i\in N2i1,i∈N,求方案数。对998244353998244353998244353取模。n,k<=3000n,k<=3000n,k<=3000题解:这个题真的是搞我心态的一个题,代码没几行,死活想不到。不想说我思考的乱七八糟想法和心路历程了,反正是看的题解。正确的打开姿势是直接dp,设dp[i][j]dp原创 2020-11-12 15:46:23 · 254 阅读 · 0 评论 -
Atcoder ABC180 F Unbranched dp 组合数学 (无代码)
题目链接题意:求nnn个点mmm条边的点有编号边无编号的满足以下条件的无向图个数:1.1.1.不必是简单图或连通图2.2.2.每个点度数最多是2223.3.3.最大连通块的大小恰好是lll2<=n<=200,1<=m,l<=n2<=n<=200,1<=m,l<=n2<=n<=200,1<=m,l<=n模1e9+71e9+71e9+7题解:首先注意思考图的本质不同。首先要注意到你给一个连通块选的点的顺序不同,但是点的集合原创 2020-11-04 19:59:57 · 398 阅读 · 0 评论 -
CF1399F Yet Another Segments Subset 区间DP
先来吐槽两句:这篇文章本应该是发在博客园的,但是由于博客园的markdown没用明白,于是就只能继续用CSDN了。这段时间算是以赛代练吧,基本每场能打的CF都去打了,新建的小号分和以前的号差不多了,但是自我感觉水平还是没有恢复到之前。题目链接:https://codeforces.com/contest/1399/problem/F题意:t组询问,每组给你n条线段,保证线段两两不同,告诉你每条线段的左右端点坐标,要求你选出一组线段,使得这组线段两两之间的关系要么是相互包含,要么是没有交点,求组内最多原创 2020-08-13 14:01:05 · 445 阅读 · 2 评论 -
BZOJ3812 主旋律 状压dp 容斥原理
题目链接题意:给你一个nnn个点mmm条边的有向图,无重边自环,求删去一个边集之后整个图强连通的方案数。n&lt;=15,m&lt;=n(n−1)n&lt;=15,m&lt;=n(n-1)n<=15,m<=n(n−1)。题解:这个数据范围一看就很状压,大概率是个3n3^n3n的题,然而这个题确实是3n3^n3n的。我们先考虑是直接算答案还是用总...原创 2019-03-04 19:51:28 · 212 阅读 · 0 评论 -
CF1117D Magic Gems dp 矩阵乘法
题目链接题意:你有任意多个有魔力的宝石,每个有魔力的宝石可以选择分裂成mmm个普通的宝石,每个宝石占的空间是111,问你有多少种方案占满nnn个空间。n&lt;=1e18,m&lt;=100n&lt;=1e18,m&lt;=100n<=1e18,m<=100。题解:当时打比赛的时候没有做出来,有点菜。主要是当时做到这个的时候时间不太够了,于是当时...原创 2019-03-09 17:59:36 · 290 阅读 · 0 评论 -
洛谷2150 BZOJ1497 NOI2015 寿司晚宴 状压dp 数论
题目链接题意:你有数值为2−n2-n2−n的n−1n-1n−1个数,你要把这些数分给两个人,可以有点数不分给任何人,每个人分到的数可以为空。分的时候如果第一个人分到的数存在一个数xxx,第二个人分到的数存在一个数yyy,使得xxx与yyy与共同的质因子,那么就不合法。也就是对于某一个质因子,它的所有倍数只可能分给同一个人。求有多少种合法的分配数的方案。n&amp;lt;=500n&amp;lt...原创 2019-03-14 08:43:08 · 190 阅读 · 0 评论 -
CF468C Hack it! 构造 dp
题面链接题意:给你一个aaa,设f(i)f(i)f(i)表示iii这个数十进制下各个数位的数字之和。要你求一对(l,r)(l,r)(l,r),使得∑i=lrf(i)=0(mod a)\sum_{i=l}^rf(i)=0(mod\ a)∑i=lrf(i)=0(mod a)。如果有多组合法的(l,r)(l,r)(l,r),输出任意的一组。a&lt;=1e18,l,r&...原创 2019-03-03 18:53:48 · 490 阅读 · 0 评论 -
CF1096E The Top Scorer dp 概率 容斥 组合数
题目链接题意:有ppp个人比赛,如果一个人比其他人的分都高的话就是胜者,如果有多个最高分的话,那么假设最高分的人数是xxx,那么每个最高分都有1x\frac{1}{x}x1的概率成为胜者。每个人的分数都是从0−s0-s0−s的一个整数,并且所有人的分数总和是sss,已知第一个人的分数&gt;=r&gt;=r>=r,求他是胜者的概率。对998244353取模。s,r&am...原创 2019-03-01 11:29:37 · 268 阅读 · 0 评论 -
CF1097G Vladislav and a Great Legend 组合数学 树形dp
题目链接题意:给你一个nnn个点的树,对于每一个非空点集XXX,我们定义f(X)f(X)f(X)为点集是XXX的最小连通子树的边数,再给你一个kkk,你要对于所有点集,求出(f(X))k(f(X))^k(f(X))k之和。n&lt;=1e5,k&lt;=200n&lt;=1e5,k&lt;=200n<=1e5,k<=200。题解:之前没做过这种套...原创 2019-03-01 09:33:23 · 511 阅读 · 3 评论 -
CF886E Maximum Element dp 组合数 前缀和
题目链接链接是洛谷有翻译的。题意:有一个长度为nnn的序列,序列的数互不相同。有个人要求这个排列的最大值,他的做法是如果出现了当前值比已经出现过的值都大就更新答案,否则累加一个计数器,如果连续k个数都没有比之前最大值大,那么他就认为当前的最大值就是最后的最大值。问你对于这个序列的所有排列,这种方法有多少种情况下是错的。对1e9+7取模。n,k&amp;lt;=1e6n,k&amp;lt;=1...原创 2019-02-28 20:00:55 · 264 阅读 · 0 评论 -
CF1097 Hello2019 D Makoto and a Blackboard 期望 dp
题目链接题意:给你一个数nnn,这个数每次会等概率地变成它的任意一个因数,求kkk次操作后期望得到的数字。n&lt;=1e15,k&lt;=10000n&lt;=1e15,k&lt;=10000n<=1e15,k<=10000题解:先吐槽两句。熬夜打Hello2019,结果自闭。全机房就我rating最低,结果还掉分了。C就是个水题,结果我还脑子...原创 2019-01-06 20:50:33 · 235 阅读 · 0 评论 -
ARC101E Ribbons on Tree 树形dp 容斥
题目链接题意:给你一棵nnn个点的树,nnn是偶数,把这些点分成n2\frac{n}{2}2n个点对,每个点对会把路径上的所有边覆盖,问你每条边至少覆盖一次有多少种配对方式。n&amp;amp;amp;amp;amp;amp;lt;=5000n&amp;amp;amp;amp;amp;amp;lt;=5000n&amp;amp;amp;amp;amp;lt;=5000题解:又是我看题解都半天看不懂的题。算是一道比较神仙的计数题。题解上来就说考原创 2019-01-04 10:16:08 · 322 阅读 · 0 评论 -
AGC001 E BBQ Hard 组合数 dp
题目链接链接是洛谷有翻译的。题意:你有nnn个数对(ai,bi)(a_i,b_i)(ai,bi),求∑i=1n∑j=i+1nCai+bi+aj+bjai+aj\sum_{i=1}^n\sum_{j=i+1}^nC_{a_i+b_i+a_j+b_j}^{a_i+a_j}∑i=1n∑j=i+1nCai+bi+aj+bjai+aj。n&amp;amp;amp;lt;=200000,ai,bi...原创 2018-12-29 19:09:47 · 206 阅读 · 0 评论 -
BZOJ4770 图样 dp 期望 打表
题目链接题意:给你一个nnn个点的完全图,每个点的点权是[0,2m)[0,2^m)[0,2m)之间的一个随机整数,两点之间的边的权值是两点点权的异或值,求最小生成树的边权和的期望。对258280327(质数)取模,n&lt;=50,m&lt;=8n&lt;=50,m&lt;=8n<=50,m<=8题解:一道好题!才不会说虽然我想不出来,但是我不...原创 2018-12-29 09:21:44 · 428 阅读 · 0 评论 -
AGC013 D Piling Up dp
题目链接题意:一开始有nnn个颜色为黑色或白色的球,但不知道黑色白色球分别有多少。有mmm次操作,每次先拿出一个球,再放入黑白球各一个,再拿出一个球,最后拿出的球按顺序排列会形成一个颜色序列,求颜色序列有多少种。对1e9+71e9+71e9+7取模。n,m&lt;=3000n,m&lt;=3000n,m<=3000。题解:直觉上就是个O(nm)O(nm)O(nm)的d...原创 2019-03-14 18:37:34 · 218 阅读 · 0 评论 -
AGC002 F Leftmost Ball dp 组合数学
题目链接题意:给你nnn种颜色的球,每个球有kkk个,把这n∗kn*kn∗k个球排成一排,把每一种颜色的最左边出现的球涂成白色(初始球不包含白色),求有多少种不同的颜色序列,答案对1e9+71e9+71e9+7取模。n,k&lt;=2000n,k&lt;=2000n,k<=2000。题解:说实话,我自己的想法和网上的题解挺不一样的,我自己感觉好像挺对的,但是有一些细节...原创 2019-03-14 20:51:08 · 191 阅读 · 4 评论 -
洛谷3648 BZOJ3675 APIO2014 序列分割 dp 斜率优化
题目链接题意:给你一个长度为nnn的序列,你要把它切kkk次分为k+1k+1k+1段,每次切开一块之后对答案的贡献是新的两个块的权值和的乘积。你现在要输出切kkk次后最大的权值和,洛谷上还要求输出分段的位置。题解:我们化一下式子会发现,你确定了所有要切的位置之后,我们会发现,切这些位置的先后顺序对答案没有影响。证明的话好像可以用个类似分配律的东西化一下吧。我们考虑dp,我们设dp[i][...原创 2019-03-11 11:26:40 · 161 阅读 · 0 评论 -
洛谷3226 BZOJ2734 HNOI2012 集合选数 构造 状压dp
题目链接题意:给你111到nnn这nnn个数,问能分成多少种不同的集合,使得每个集合里不存在一个元素xxx和2x2x2x或者3x3x3x同时存在。题解:这题的核心思想是构造。我们考虑构造一个矩形,左上角的第一个元素是111,然后对于每一行,右侧的数是左侧的数的两倍;对于每一列,下方的数是上方的数的三倍。这个矩阵样子如下:(124836122491836722754108216)\begi...原创 2019-04-25 11:13:54 · 174 阅读 · 0 评论 -
洛谷1846 游戏 dp
题面链接题意:给定两个正整数数列,你要用它们来做一个游戏:你需要对数列进行若干次操作,每一次操作,应选择两个正整数K1和K2 ,并删除第一个数列的最后K1个数,计算出它们的和S1;删除第二个数列的最后K2个数,计算出它们的和S2。这一次操作的得分就是(S2-K2 )*(S1-K1 )。两个数列应同时被清空,不允许一个数列空了,而另一个数列中还有数。游戏的总得分就是每一次操作的得分总和。求最小...原创 2019-04-19 23:25:22 · 204 阅读 · 1 评论 -
洛谷5339 BZOJ5510 TJOI2019 唱、跳、rap和篮球 容斥 dp 组合数
题目链接题意:给你一个nnn,表示你要选出一个nnn个人组成的队列。有四种不同的人,人数分别是a,b,c,da,b,c,da,b,c,d个,保证a+b+c+d>=na+b+c+d>=na+b+c+d>=n。我们要求队伍里不能有连续的四个位置依次是第一种人、第二种人、第三种人和第四种人。求方案数。对998244353998244353998244353取模。n&...原创 2019-05-04 15:46:26 · 473 阅读 · 0 评论 -
洛谷4895 BZOJ3162 独钓寒江雪 树形dp 树哈希
题目链接题意:给定一棵无根树,求其中本质不同的独立集的个数。独立集就是一个集合中的点之间都没有边直接相连。n<=5e5n<=5e5n<=5e5,对1e9+71e9+71e9+7取模。题解:首先膜拜一下y_immortaly\_immortaly_immortal神仙,是这个神仙教的我这个题怎么做QwQ.首先考虑没有本质不同应该怎么算。我们设dp[x][0...原创 2019-04-23 09:24:38 · 206 阅读 · 0 评论 -
洛谷3830 BZOJ2830 SHOI2012 随机树 概率期望 dp 组合数学
题目链接题意:有两问,第一问是所有可能的nnn个叶子节点的二叉树的叶节点的平均深度,第二问是nnn个叶节点的二叉树的期望深度。题解:原创 2019-04-21 13:54:13 · 210 阅读 · 0 评论 -
CF1111E Tree 虚树 dp
题目链接题意:给一棵nnn个结点的树,qqq次询问,每次询问首先是三个数k,m,rk,m,rk,m,r,接下来跟着kkk个结点编号,请你将这kkk个结点分成不超过mmm组,使得在以rrr为根的情况下,组内的任意两个结点不存在祖先关系,求方案数对109+710^9+7109+7取模。根不一定在这kkk个点内。n,q<=1e5,∑k<=5e5n,q<=1e...原创 2019-03-27 11:51:31 · 479 阅读 · 0 评论 -
洛谷3349 BZOJ4455 ZJOI2016 小星星 状压dp 树形dp 容斥
题目链接题意:给你一个nnn个点的树和一个nnn个点mmm条边的图,这两个nnn的相同的,要求建立一个映射关系,使得树上的每一个点与图上的每一个点唯一对应,能对应的要求是在原来树上有连边的两个点在图上也有边直接相连。求这种对应的方案数。对1e9+71e9+71e9+7取模。n&amp;lt;=17,m&amp;lt;=n(n−1)n&amp;lt;=17,m&amp;lt;=n(n-1)n&l...原创 2019-03-13 15:18:45 · 388 阅读 · 0 评论 -
洛谷2606 BZOJ2111 ZJOI2010 排列计数 树形dp 卢卡斯定理
题目链接题意:求长度为nnn的排列,满足Pi&gt;Pi/2P_i&gt;P_{i/2}Pi>Pi/2,其中除是下取整的除法。n&lt;=1e6,n&lt;=1e6,n<=1e6,模数&lt;=1e9&lt;=1e9<=1e9题解:为什么洛谷把这个题放到数位dp的题里面啊,然后感觉一脸懵逼。感觉如果线段树写的比较熟练的...原创 2019-03-13 07:57:48 · 169 阅读 · 0 评论 -
CF1039D You Are Given a Tree 整体二分 树形dp
题目链接题意:给你一棵nnn个点的树,问你点数为kkk的互不相交的路径数最多有多少条。要求你对[1,n][1,n][1,n]的每一个kkk都输出答案。n&lt;=1e5n&lt;=1e5n<=1e5。题解:如果只有一个kkk要求答案的话,就有点类似今年NOIP的Day1T3,但是其实那个题要是是边不想交的话合并要二分,或者按照一定顺序。这个点不相交的话就直接维护最长链...原创 2019-03-11 20:30:10 · 410 阅读 · 0 评论 -
CF724F Uniformly Branched Trees 树形dp 组合数
题目链接题意:给你一个nnn一个ddd和一个模数,让你求nnn个点的不同构的无标号树,要求所有除了叶子之外的点的度数都是ddd的方案数。不同构是指对于任何重标号后的树不同构。n&lt;=1000,d&lt;=10n&lt;=1000,d&lt;=10n<=1000,d<=10。题解:之前没怎么做过这种无标号无根树不同构的题,于是对怎么处理同构上就...原创 2019-03-11 16:22:19 · 302 阅读 · 0 评论 -
洛谷4309 BZOJ3173 TJOI2013 最长上升子序列 平衡树 dp 线段树
题目链接题意:你有nnn个数,每个数会插到一个位置,告诉你每个插到数列后的位置,问你每一个数插完之后的最长上升子序列长度。n<=1e5n<=1e5n<=1e5。题解:带插入的最长上升子序列,由于不是强制在线,于是我搞了个离线做法。我的做法是先用一个平衡树来维护出插入后序列每个位置的数值,然后用一个nlogn的dp来算每个数插入后以某个这个位置的数为结尾的...原创 2019-03-19 21:55:20 · 161 阅读 · 0 评论 -
洛谷4022 BZOJ2806 CTSC 2012 熟悉的文章 cheat 广义SAM dp 单调队列 二分
题目链接题意:给你nnn个模式串和mmm个询问串,对于每个询问串,如果能划分成若干个长度大于等于lll的这nnn个模式串中的某个子串,和一些不需要匹配的零散串,要求匹配串总长度不少于串长的9090%90,那么称lll对于这个串是合法的,对于每个串求最长的lll。串都是01串,输入的字符数总和是1e6级别。题解:我们比较容易感知到这个题是满足二分性的,lll大的可以小的也是可以的啊,因为划分...原创 2018-12-16 21:51:14 · 216 阅读 · 0 评论 -
洛谷4284 BZOJ3566 SHOI2014 概率充电器 概率期望 树形dp
题目链接题意:给你一棵树,树上每一个点一开始有一定概率有电,并且边会导电,每条边又一个导电的概率。求导电完毕后有电的点的个数的期望。n&lt;=500000n&lt;=500000n<=500000题解:一道不错的题。我们首先的一个考虑是想利用期望的线性性来对整棵树进行树形dp。我们设dp[x]dp[x]dp[x]为点xxx有电的概率,然后转移的化分从子树和从父节点...原创 2018-12-20 20:48:55 · 188 阅读 · 0 评论 -
BZOJ4244 邮戳拉力赛 dp
题目链接题意:题解:cwbc讲课因为时间原因没讲到的一道题,结果正睿rxd的模拟赛感觉还是很神仙的,我感觉我好像不太能想出来这个题啊。一道神仙dp题。我们发现,最后答案一定需要从0到n+1,一定要用这(n+1)T的时间。我们考虑如果我们到了下行的某个位置,那么他一定会再在某个位置再回到上行,那么除了我们从上行的0走到n+1的,其他的构成了若干个环,这些环在后面的某个位置从上行切换到下行...原创 2018-12-09 20:49:23 · 265 阅读 · 1 评论 -
洛谷3117 BZOJ4033 树上染色 树形背包
题目链接 题意: 给你一棵n个点的数,边有边权,要在其中选k个点染成黑色,其余点染成白色,求所有相同颜色点之间的路径的权值之和。题解: 这个题不难想到要树形dp,状态设计也还好,但是要如何设计dp含义、如何统计答案是有难度的。我们不难想到dp有一维应该设计成以x为根的子树的情况,另一维设计成子树内染了i个黑色点,但是如果dp数组的含义设为子树内的权值之和的话似乎好像很难向父节点转移,因为...原创 2018-07-30 21:43:55 · 291 阅读 · 0 评论 -
洛谷3622 bzoj1151 APIO2007 CTSC2007 动物园 状压dp
题目链接 题意还是自己看题吧,比较麻烦,一两句话说不清楚。题解: 这个题是道好题。 乍一看这数据范围根本不像状压,仔细想想才会发现其实每个人只能看到5个位置,所以我们可以对5状压。 可能会有人看到的区域相同,所以我们设cnt[i][j]cnt[i][j]cnt[i][j]表示在第iii个位置,从该位置开始,连续五个位置的状态是jjj,有多少个视野初始位置在iii的人会开心。其中对于某个...原创 2018-07-05 22:07:08 · 328 阅读 · 2 评论 -
洛谷2704 炮兵阵地 状压dp
题目链接 题意: 给你一个n∗mn∗mn*m的网格,每个各自最多放一个炮兵,有一些格子不能放,并且一个炮兵的上下左右两个内不能放炮兵,问最多放多少炮兵。题解: 这个题搜索会超时,那么我们发现m&lt;=10m&lt;=10mdp[i][j][k]dp[i][j][k]dp[i][j][k]表示第iii行,当前状态的jjj,上一行的状态是kkk最多放多少炮兵。我们从外层到内层依次枚举当前行...原创 2018-07-05 19:37:17 · 340 阅读 · 0 评论 -
洛谷2602 bzoj1833 ZJOI2010 数字计数 数位dp
题目链接 题意:给你两个数aaa和bbb,让你求区间[a,b][a,b][a,b]当中0−90−90-9每一个数字出现在多少次。题解: 这种题目应该不难看出是数位dp题目。拿到这道题的第一感觉可能会发现答案中很可能有某些数字的出现次数是一样的,再仔细考虑一下的话可以发现,假如位数确定了,那么所有iii位数中111到999的出现次数是一样的。那么我们会想,为什么000的出现次数和别的数不...原创 2018-07-04 19:26:25 · 271 阅读 · 0 评论 -
HDU2089 不要62 数位dp
题目链接 题意:给你一个nnn和一个mmm,求在[n,m][n,m][n,m]之间的数有多少个不包含连续的626262也不包含444。 题解: 这种题一看就是数位dp。dp[i][j]dp[i][j]dp[i][j]表示前iii位,当前这一位数字是jjj的方案数。状态转移方程是dp[i][j]=∑k=09dp[i−1][k] ( (j=6和k=2不同时满足) 且...原创 2018-07-03 21:10:23 · 117 阅读 · 0 评论 -
洛谷2607 bzoj1040 ZJOI2008 骑士 基环树dp
题目链接 题意:给你nnn个点和nnn条有向边,每个点有点权,保证每个点只有出度都是111,不保证连通,保证没有自环,要求点xxx所能到达的点和能到达点xxx的点不能同时被选,选出若干个点,使他们的权值和最大。 题解: 我们发现每个点只有一条出边,那么有点像一棵树(每个点最多只有一个父节点),由于不一定连通,所以实际应该说是一个由若干基环树组成的森林,因为每个连通块都不会存在一个没有出度的点...原创 2018-07-03 18:49:18 · 235 阅读 · 5 评论