该文被密码保护。 阅读全文
摘要:
比赛的时候又被垃圾题艹翻了啊。 这个题显然是区间dp 考虑怎么转移。 类似消除方块和ZYB玩字符串那样的一个DP。 可以从左到右依次考虑消除。 dp[l][r][k][flag]表示区间l,r左边粘着k个flag。 转移方式: 1.考虑强行去继续黏上下一个字符并使k+1。 2.考虑把一段跳过去,让被 阅读全文
摘要:
又傻掉了呢 看到连乘显然直接转原根变成线性齐次递推式。 矩阵乘法求一发。 然后分析一下发现是个x^k=m的形式。 按照套路解一下高次方程就好了。 需要用到exgcd和bsgs。 cpp include include include include include include include i 阅读全文
摘要:
(k<=1e5,求的方案是有顺序的,即{2,3}和{3,2}不同) sol: 首先考虑没有1的限制怎么做。 就是一个很简单的插板法。 对每个因子插板法一下。 O(m)的复杂度就能求出来。 正解呢? 考虑容斥。 这样可以把不能为1的那个限制去掉。 枚举一下至少有i个位置为1后, 不妨把上一步中那个方法 阅读全文
摘要:
https://www.cnblogs.com/butterflydew/p/10457362.html 一定注意容斥的时候-1的系数多减了1。 然后一种很常见的min-max容斥的策略就是以每个元素的出现时间作为权值。 最后一个出现的时间即为max,也就等价于全集出现的时间。 阅读全文
摘要:
题意: sol: 考虑floyed 直接暴力做的话复杂度是k×n^3会炸。 考虑一个比较神仙的分块做法。 注意到我们是可以直接求单独某个k的矩阵,使用矩阵快速幂即可(取min的矩阵乘法)。 单独求一次的复杂度是O(n^3logk)。 设块的长度为100。 对k/100的分块边界求一下它们的矩阵。 这 阅读全文
摘要:
题意:给出一个012序列,进行m次操作,每次选择一个区间并把它变成全0。 要求序列上的2最终还是2,序列上的1最终变成0。 考虑只有0和2怎么做。 求出有多少种区间的选择方法数x。 ans=x^m。 带上1以后,有一个暴力的做法,直接容斥那些1最后没有变成0,然后把这些看成2来做。 复杂度O(2^n 阅读全文
摘要:
题意: 容斥二进制意义下至少哪些位置不相等。 cpp include include include include include include include include include define N 2200000 define L 2000000 define eps 1e 7 d 阅读全文