![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
————其他dp
文章平均质量分 64
BAJim_H
比孤独更可悲的事情,就是根本不知道自己很孤独,或者分明很孤独,却把自己都骗得相信自己不孤独。
展开
-
【GDOI2016】最长公共子串 题解
Description给你两个字符串S,TS,T 给你NN个区间,SS串中这些区间内的字符可以随意改变在区间中的位置。 求S,TS,T可以达到的的最长公共子串长度Solution注意,公共子串是必须连着的(坑死我了)可以发现,只要两个区间有可以重叠的地方,就可以把这两个区间合并成一个区间。那么就可以把原本100000100000的区间个数降到20002000以下我们需要记录一下每个区间中每种字符原创 2016-05-19 12:37:05 · 642 阅读 · 0 评论 -
[JZOJ5451]【NOIP2017提高A组冲刺11.4】Genocide
Description Solution50分的非常简单,原式可以拆成一个斜率的式子,我们可以用一个单调栈进行斜率优化(为什么是栈而不是队列,可以自行画个图)考虑100分 对于某一个点的更改,只需要求出必须选这个点的最优答案和不选这个点的最优答案。不选这个点的答案非常好求,可以倒过来做一遍DP 设fif_i表示1到i的答案,gig_i表示i到N的答案 那么不选的答案就是fi−1+gi+1f_原创 2017-11-05 22:27:40 · 261 阅读 · 0 评论 -
[JZOJ5485]【清华集训2017模拟11.26】字符串
Description 一个字符串的权值是这个串包含的不同字符个数。 给定一个长度为n的字符串,把它分为k个连续非空字段,每个字符必须在某一段中,最小化字符串的权值和。 对于100%的数据,1<=k<=n<=100,000。Solution考虑DP 发现如果直接f[位置][第几段]来表示,那么状态数是n^2级别的很容易发现,答案一定不超过k+25 那么可以优化状态 设F[i]原创 2017-11-29 11:53:27 · 479 阅读 · 0 评论 -
[JZOJ4540] assign
Description Solution可以先枚举分数线有一种麻烦的做法,可以直接DPF[i][j][k],G[i][j][k]F[i][j][k],G[i][j][k]分别是前缀和后缀,做到第i位,超线j个,压线k个,然后对于每个点再将它们组合一下,然后前缀和优化,还要注意强制满足分数线(即两个k必须有一个大于0,或者这个点压线)非常的繁琐考虑一种简单的做法 不妨直接枚举分数线,并且强制令这个原创 2017-12-30 10:41:57 · 185 阅读 · 0 评论 -
[JZOJ5522] 图
Description这个世界是一个有向图,图中有n个点m条边且无重边无自环,每秒第i条边出现的概率是p[i]/100,一开始Samjia在1点,每一秒假设Samjia在点x上,那么Samjia要从存在的边中选一条来走,不可以不走,如果不存在可以走的边,那么Samjia就会掉出这个世界,假设Samjia绝顶聪明,问最后Samjia可以成功到达n的概率是多少。一个实数表示答案,即最后Samj原创 2018-01-15 17:10:35 · 416 阅读 · 0 评论 -
[JZOJ5511] 送你一个DAG
Description 给出一个 n 个点 m 条边的 DAG 和参数 k。 定义一条经过 ll 条边的路径的权值为 lkl^k. 对于 i = 1…n, 求出所有 1 到 i 的路径的权值之和, 对 998244353 取模. 对于前 20% 的数据, n ≤ 2000,m ≤ 5000; 对于另 10% 的数据, k = 1; 对于另 20% 的数据, k ≤原创 2018-01-09 12:09:02 · 949 阅读 · 0 评论 -
[AtCoder Grand Contest 013] D: Pilling Up (agc013d)
原题链接 https://agc013.contest.atcoder.jp/tasks/agc013_dDescription盒子中有N个积木,积木可能是黑色或白色的一种(状态未知)现在要进行M次操作,每次操作拿出一个积木放在塔的顶端,然后将新的一黑一白两个积木放入盒子,再拿出一个积木放在塔的顶端一开始是没有塔的,第一块放在平地上 求塔可能的颜色序列种数,对1e9+7取模...原创 2018-03-04 16:57:52 · 225 阅读 · 0 评论 -
[AtCoder Regular Contest 072] E: Alice in linear land (arc072e)
原题链接 https://arc072.contest.atcoder.jp/tasks/arc072_cDescriptionAlice在一个数轴上,一开始她到原点有D的距离(位置正负不论) 给出一个长度为N的正整数序列a 她会按照a从1到N顺次操作,第i次操作的移动距离为a[i],若朝着原点方向移动a[i]的长度(可能跨过原点)会比目前到原点的距离严格更近,那么她就会走,否则...原创 2018-03-05 21:25:17 · 197 阅读 · 0 评论 -
[JZOJ5620]【NOI2018模拟4.1】修炼
Description Solution将所有商品按时间排序 那么只有这些时间点是有用的设F[i]表示当前在第i个魂导器卖的时间,手上没有魂导器所能获得的最大魂力 N^2转移很简单然后我们发现一个转移可以看成一个以时间为变量的一次函数那么直接用线段树维护若干直线形成上凸壳即可(标记永久化、李超树) 具体可以看我的BLOG线段树维护凸壳 复杂度O(NlogD)O...原创 2018-04-01 15:16:18 · 431 阅读 · 0 评论 -
[JZOJ5646]【NOI2018模拟4.12】染色游戏
Description Solution容易看出不考虑a的限制的话这是一个斜率优化的式子这就变成了一个二维偏序,既要下标又要权值当然可以用二维数据结构,如果希望将问题降维的话,排序是一个好的选择这样就有一种O(Nlog2N)O(N\log^2N)的做法,先按a从小到大排序,然后由于这个点只会转移到它后面的点,那么用李超树维护凸包,动态加线段即可理论上是不能通过的,实际上一批人过掉了这题还跑的贼快。原创 2018-04-20 22:31:13 · 446 阅读 · 0 评论 -
【DP】[JZOJ4390] 图计数(整数划分)
Description Solution设将n划分为若干个无序正整数之和的方案数为s 可以看出答案就是msmsm^s令n′=n−−√n′=nn'=\sqrt n 分成两个问题,一个是用小于等于n′n′n'的数来拼和用大于n′n′n'的数来拼,最后再卷积到一起 小于等于n′n′n'的部分就是一个完全背包问题大于n′n′n'的部分,总的选择个数不会超过n′n′n' 可以考...原创 2018-07-17 22:18:21 · 191 阅读 · 0 评论 -
【杂题】【DP】【容斥原理】[Codeforces 285E] Positions in Permutations
Description原题传送门定义一个排列P的第i个位置是好的,当且仅当|Pi−i|=1|Pi−i|=1|P_i-i|=1 给出n,m,要求长度为n的好的位置恰好有m个的排列数量。1&lt;=n&lt;=1000,0&lt;=m&lt;=n1&lt;=n&lt;=1000,0&lt;=m&lt;=n1F[i][j][0/1][0/1]F[i][j][0/1][0/1原创 2018-08-23 22:04:50 · 243 阅读 · 0 评论 -
[JZOJ5874] 小P的决心
DescriptionSolution我们发现根据题目中剪枝的定义,如果一个点有兄弟,那么就要么不删这个点,要么将它和它的兄弟全部删掉。考虑按照DFS序来DP,令F[i]为假设i为最后一个叶子,它的最大答案(DFS序在i后面的不管)考虑哪些点能转移到F[i],设x为i的第一个有兄弟的祖先,且x不是father[x]的第一个儿子。那么能转移到F[i]的一定是x的前一个兄弟一直向右下(就...原创 2018-09-22 19:30:47 · 306 阅读 · 0 评论 -
[JZOJ5952] 凯旋而归 ([BZOJ 5092]【Lydsy1711月赛】分割序列)【高维前缀和】【DP】
Description对于一个长度为m的序列a,记f(a)=max((a1 xor ... xor ai)+(ai+1 xor ... xor an)),i∈[0,m]f(a)=\max((a_1\ xor\ ...\ xor\ a_i)+(a_{i+1}\ xor\ ...\ xor\ a_n)),i\in[0,...原创 2018-11-06 15:00:48 · 256 阅读 · 0 评论 -
[JZOJ5976] 打怪兽 【DP】【决策单调性】
DescriptionSolution首先发现性质可以看出,如果上一次叠的甲还没有掉完,那么此时是不会叠甲的因为这时候叠甲,不如把这些甲移到上次一起叠,那么肯定是更优的。那么现在就相当于用若干个下降且不交的三角形来覆盖这个序列。考虑DP设F[i][j]F[i][j]F[i][j]表示1到i-1我们已经处理完了,已经花了j层甲,现在是一层也没有的最大总挡掉的伤害值。要么直接从i-...原创 2018-12-15 21:21:42 · 357 阅读 · 0 评论 -
[JZOJ5424]【NOIP2017提高A组集训10.25】凤凰院凶真
Description给出两个序列A,B 求出这两个序列的LCIS,即最长公共上升子序列 输出任意一组解Solution先离散化N3N^3的做法容易想到,Fi,j,kF_{i,j,k}表示A到了i,B到了j,当前末尾为j,直接转移。考虑优化 可以用二维表示状态 Fi,jF_{i,j}表示A到了i,B到了j,且分别以i,j结尾,那么末尾最大值这一维可以省略先枚举i,然后在枚举j时我们发现,假设原创 2017-10-25 15:34:33 · 313 阅读 · 0 评论 -
[JZOJ5415]【NOIP2017提高A组集训10.22】公交运输
Description 城市中有一条长度为n的道路,每隔1的长度有一个公交车站,编号从0到n,学校在0号车站的位置。其中每个公交车站(除了n号车站)有两个属性ci和vi,代表从这个公交车站出发的公交车的性质。ci代表这个从i出发的公交车,相邻两个停靠站之间的距离。vi表示每坐1站的花费。 注意,一辆公交车出发后会向n号车站的方向行进。同时,一名乘客只能从起点站上车,但可以从任意停靠站下车。原创 2017-10-24 16:32:35 · 226 阅读 · 0 评论 -
[JZOJ3432]服务器 ([上海交大OJ1061]小M的服务器)
Description 我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, …, Sn。 首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器Si上,需要花费ci > 0的置放费用。对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2, …直到找到一台服务器Sj:Sj中的文件是通过直接复制得到的,于是Si从Sj处间接复制得到原创 2016-06-12 19:51:06 · 529 阅读 · 0 评论 -
[JZOJ4771] 爬山
Summary给出一个有向图,一个出发点和多个终点,每个点有一定的价值,经过该点就可以获得该价值(仅一次),问从出发点出发到任意一个终点的最大价值和(每条边可以走多次)Solution十分显然的想法,如果有一个环,那么这个环上所有点都可以走,所以用TarjanTarjan强连通分量缩点,然后直接在DAGDAG上DpDp就可以了Code#include<cstdio>#include<cstdlib原创 2016-09-12 12:34:57 · 327 阅读 · 0 评论 -
[JZOJ3052] 剪草
Description 有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤: (1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。 (2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵原创 2016-09-03 14:33:05 · 529 阅读 · 0 评论 -
[JZOJ4863] Market
Description Solution把购物时间排个序,然后做背包?但是我们发现,预算和金额都非常大,没法背包怎么办呢?经典的做法是,互换一下,将价值设为状态预算设为背包的值,然后再二分判断就好。伪装成难题的水题~Code#include <cstdio>#include <cstdlib>#include <algorithm>#include <iostream>#include <原创 2016-11-18 13:48:12 · 342 阅读 · 0 评论 -
[JZOJ4921] 幻魔皇
Description 幻魔皇拉比艾尔很喜欢斐波那契树,他想找到神奇的节点对。 所谓斐波那契树,根是一个白色节点,每个白色节点都有一个黑色节点儿子,而每个黑色节点则有一个白色和一个黑色节点儿子。神奇的节点对则是指白色节点对。 请问对于深度为n的斐波那契树,其中距离为i的神奇节点对有多少个?拉比艾尔需要你对于1<=i<=2n的所有i都求出答案。 对于100%的数据n<=5000。原创 2016-12-12 19:42:14 · 473 阅读 · 0 评论 -
[JZOJ4924] 向再见说再见
Description Solution先别管分差,考虑这个分差算出来第一个队分别得多少分。此处有一个极其精妙的dpdp 先把两个队从小到大排序。 设f[i][j]f[i][j]表示做到第ii个人,第一队赢了jj场,输的不算入答案的方案数。这个明显DP 做完后,剩下n−jn-j个人,那么设g[j]=f[n][j]×(n−j)!g[j]=f[n][j]\times (n-j)!,剩下的人随便打原创 2016-12-21 20:51:56 · 638 阅读 · 0 评论 -
[JZOJ4937] 与运算
Description Solution设F[i]F[i]表示当前前若干项异或起来为ii的最大答案考虑转移。 显然我们可以只转移ii的一个二进制位。找一位去掉,设去掉后为jj,并求出有多少个aa能包含jj而不包含ii(包含指ii的所有1的位在这些aa上对应的位也是1)设num[i]num[i]表示有多少个包含ii的。 显然包含jj一定包含ii 因此求的值就是num[j]−num[i]num[原创 2017-01-13 21:36:12 · 400 阅读 · 0 评论 -
[51Nod 1816] 小C的二分图 口胡
Description 小C有一个特殊的二分图(有着X部与Y部)。 对于一个X部的点x,对应在Y部的相邻点只会是一个连续区间。 然后你需要找一个最大匹配,这个匹配经过小C的膜法也变得特殊了。 两个匹配边只有当不相交时候才是小C的匹配(即对于一个比配xi->yi,xj->yj, 如果 xi<xjxi<xj yi>yjyi>yj,这样就不合法)。 n<=300,0原创 2017-04-07 21:52:33 · 907 阅读 · 0 评论 -
[51Nod 1048] 整数分解为2的幂 V2
Description 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法。 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4 (1 <= N <= 10^30)SolutionO(N)的原创 2017-04-21 20:09:16 · 1685 阅读 · 0 评论 -
[JZOJ3767]【BJOI2014】路径
1原创 2017-06-25 08:08:04 · 300 阅读 · 0 评论 -
[JZOJ5215]【HEOI、SXOI2017】组合数问题
Description求 ∑i=0ik+r≤nkCik+rnkmodp\Large \sum\limits_{i=0}^{ik+r\leq nk}{C_{nk}^{ik+r}}\mod p 其中1≤n≤109,0≤r<k≤50,2≤p≤230−11\leq n \leq 10^9,0\leq r<k\leq 50,2\leq p\leq 2^{30}-1Solution考虑组合数的实际意义 有原创 2017-07-09 16:54:47 · 610 阅读 · 0 评论 -
[JZOJ5402]【NOIP2017提高A组模拟10.8】God Knows (口胡)
Description Solution设f[i]f[i]表示前i个点已经被解决了,并且第i个点选,最小代价。 那么可以考虑转移 f[i]=min(f[j]+c[i]),j<i,p[j]<p[i]f[i]=min(f[j]+c[i]),j<i,p[j]<p[i]且∀k,j<k<i,p[k]<p[j]或p[k]>p[i]\forall k,j<k<i,p[k]<p[j]或p[k]>p[i] 即原创 2017-10-17 16:42:46 · 526 阅读 · 0 评论 -
[JZOJ5429]【NOIP2017提高A组集训10.27】排列
Description 有两个长度为n的排列A和B,定义排列的价值f(A,B)为所有满足A[i]>B[i]的位置i的数量。 现给出n,A,B和S,其中A和B中有一些位置的数未知,问有多少种可能的填数的方案使得f(A,B)=S 对于100%的数据满足,1<=S<=n<=4000 保证不存在一个位置i满足A[i]=0且B[i]=0Solution直接做很难做,不妨考虑转化一下原创 2017-10-27 22:25:18 · 151 阅读 · 0 评论 -
[JZOJ5436]【NOIP2017提高A组集训10.30】Group
Description Solution如果直接计算每一组的极差进行求和,那么状态量是非常大的。先将a排个序那么极差就是最小值到最大值之间的所有数差的和设DPF[i][j][k]F[i][j][k]表示到了第i个位置,有j组还没有完结,极差和为K那么转移K只需要考虑a[i]-a[i-1]分几种情况讨论一下即可。Code#include <cstdio>#include <algorithm>#原创 2017-10-30 15:53:53 · 226 阅读 · 0 评论 -
[JZOJ5411]【NOIP2017提高A组集训10.22】友谊
Description Flowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种, 圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗 粒的序列,如果存在1<=i<j<=2m1<=i<j<=2m,满足以下条件: 1)i 为偶数,j 为奇数 2)第i 颗友谊颗粒和第j 颗友谊颗粒同为圆粒或同为皱粒 3)第i 颗友谊颗粒和第j原创 2017-10-23 22:16:38 · 329 阅读 · 0 评论 -
【杂题】[CodeForces 827 F] Dirty Arkady's Kitchen【DP】【最短路】【堆】
原题链接:http://codeforces.com/problemset/problem/827/FDescription给出一张n个点,m条边的无向图,经过每条边所花费的时间均为1每一条边有一个出现时间区间[l,r][l,r][l,r],也就是说,你只能在[l,r−1][l,r-1][l,r−1]这一个时间区间内进入这条边,并且进入就不能回头,只能走到另一个端点。你在时刻0时在1号点,...原创 2019-02-22 21:12:17 · 265 阅读 · 0 评论