03 2022 档案

摘要:看到加减想抵消 我们来思考一件很许可的事情:对于一个表达式,其值一定是类似 i=1mci×prodi 类似的办法算出来的。就是一堆区间的乘积再加上符号。 可以发现,除了第一个 prodi,后面的 prod 都会被抵消掉。 所以我们只需要枚 阅读全文
posted @ 2022-03-31 15:52 Prean 阅读(19) 评论(0) 推荐(0) 编辑
摘要:首先我们对所有的 s 建出 ACAM,然后把所有 s 的信息丢到上去。问题就变为了每个串 t 对应一个大小为 |t| 的点集,求两个点集的虚树的交的点权和。 虚树交这种东西看上去比较奇怪,考虑根号分治。 首先我们先使用 O(nlogn)O(1) 的 LC 阅读全文
posted @ 2022-03-29 08:13 Prean 阅读(18) 评论(0) 推荐(0) 编辑
摘要:他说风雨中这点痛算什么,擦干泪不要怕,至少我们还有梦 首先弄明白一件事:区间 ACAM 可以看做是所有串的 ACAM 只保留区间串对节点贡献的信息,仍然可以使用所有串的 ACAM 的转移边。 于是我们可以使用 ACAM 套线段树,每颗线段树维护这个节点会受到区间哪些位置的串的贡献。 但是这这样有一个 阅读全文
posted @ 2022-03-28 09:53 Prean 阅读(111) 评论(0) 推荐(0) 编辑
摘要:麻了,最近几天脑子频繁出问题。。。 对于一个 DNA 序列,其一定有若干个前缀满足这些前缀也是 DNA 序列。 在一个前缀后面拼上一个能够匹配得上的 s 也能得到一个 DNA 序列。 考虑 DP。设 dp[i][u][k] 表示填了 i 个字符,当前在 ACAM 上匹配到第 阅读全文
posted @ 2022-03-27 19:27 Prean 阅读(63) 评论(0) 推荐(0) 编辑
摘要:考虑树上差分。加入一个语言或删除一个语言。先对整棵树树剖,问题变为区间加和询问全局 1 的个数。 考虑直接用线段树维护区间最小值和最小值的数量。 这个可以直接线段树合并维护。注意到总共有 O(nlogn) 次线段树修改。 然后。。。直接线段树合并就可以做到 \(O(n\ 阅读全文
posted @ 2022-03-25 15:37 Prean 阅读(27) 评论(0) 推荐(0) 编辑
摘要:我可能是sb吧,题意都能读错。 首先发现,如果有的数大于了 s,那么这些数固定对答案有 1 的贡献。先数这些数的数量,然后令 c 减去这个数。 注意到剩下的数一定都不大于 s。我们在刚学贪心的时候做过一道题:一堆电池在需要两节电池的遥控器内能用多久,考虑从这个结论推下 阅读全文
posted @ 2022-03-25 14:41 Prean 阅读(21) 评论(0) 推荐(0) 编辑
摘要:能够注意到,题意相当于让我们对一段前缀矩阵区间加,然后求某个位置的历史最值。 历史最值很容易转化成矩阵来维护,具体地: hmi=min(hmi,mi+x) mi=min(INF,mi+x) \([hmimi]=\begi 阅读全文
posted @ 2022-03-22 11:46 Prean 阅读(34) 评论(0) 推荐(0) 编辑
摘要:整个人场上发麻,有思路但是懒得去推,结果很简单然后就寄了/hanx 注意到一个串的续力值相当于这个串的所有前缀的 Border 的数量。 问题变为计算新加入字符后,所有后缀的上述值。 Insert 一个节点后,考虑上述过程,发现相当于计算每个子串的 Border 数量之和。 自动机上一个节点的 Bo 阅读全文
posted @ 2022-03-19 15:15 Prean 阅读(33) 评论(0) 推荐(0) 编辑
摘要:SAM:线段树是我双手的延伸 这句话相当有道理 考虑容斥。设 aibi 是第 i 个喵星人的姓和名,我们对于两个串分别求答案,再减去同时被两个串包含的询问串数量。 我们同时建立三个广义 SAM:只包含 a,只包含 ba,b 都包含。 只 阅读全文
posted @ 2022-03-18 20:26 Prean 阅读(14) 评论(0) 推荐(0) 编辑
摘要:神奇题目( 首先观察一下,有一个简单的 O(nm|t|) 的暴力,即对字符串的每一个前缀记录哪些前缀能够到达这个前缀。 观察到 s 的长度只有 20,这给了我们机会。 看到 20,你要想的东西不止有状压,还可能是 bitset。 对于一个前缀,记录 p[i] 阅读全文
posted @ 2022-03-18 19:15 Prean 阅读(26) 评论(0) 推荐(0) 编辑
摘要:为什么我从ACAM做到了数位DP啊 考虑枚举顶着最大值的前缀和没有顶着最大值的后缀。 考虑计算一个数对答案的贡献。统计 t 的出现次数记录到 c[t] 中。 贡献就是 \(\sum_{i=0}^{9}((\sum_{x=0}^{\sum_{j=i}^{9}c[j]-1}i\times 阅读全文
posted @ 2022-03-17 20:43 Prean 阅读(128) 评论(0) 推荐(0) 编辑
摘要:当你看到一个东西的时候,GF 有可能比 DP 更方便。处理贡献也有可能比 DP 更方便。 这个题意明显是让我们计算 S(r)S(l1) 之类的东西( 所以直接考虑前缀的答案就好了( 考虑将一个数分为两个部分,顶着最高位的前缀和没顶着最高位的后缀。 我们枚举这个前缀。后缀的个数是很容易计算 阅读全文
posted @ 2022-03-16 09:06 Prean 阅读(27) 评论(0) 推荐(0) 编辑
摘要:为什么我和同学对比了一下,发现我和他的做法差别很大啊 对于这种问题,我们把整个字符串分为两个部分:前缀顶着最高位和后缀没有顶着最高位。 我们枚举这个前缀,然后后缀通过 DP 来搞定。 不包含任何一个子串,似乎最有力的处理工具就是 ACAM。 于是我们可以确定这个 DP 的状态:\(dp[k][u]\ 阅读全文
posted @ 2022-03-16 08:39 Prean 阅读(18) 评论(0) 推荐(0) 编辑
摘要:这道题还有点意思。 路径要求是一个回文串,回文串立马枚举中点。中点只可能在对角线上。 枚举对角线上的一个点,然后两边的路径必须完全相同。 既然路径上的字符必须完全相同,那么每个前缀也必须完全相同。 考虑 DP。设 dp[x1][y1][x2][y2] 表示左上方的路径终点在 \((x1,y1 阅读全文
posted @ 2022-03-15 12:00 Prean 阅读(25) 评论(0) 推荐(0) 编辑
摘要:众所周知,排列是一个置换,一个置换是一车环。 步数就是这些环长的 lcm。 如果你去思考直接 DP,会发现很困难,根本设不出来状态。于是考虑正难则反:每个质数幂 pk 对答案的贡献。 可以发现,如果设 f[pk]pkf[pk] 个排列的 \ 阅读全文
posted @ 2022-03-14 20:17 Prean 阅读(30) 评论(0) 推荐(0) 编辑
摘要:LCS 为给定串的长度减一,考虑枚举一个区间 [L,R],表示 ST 的长度为 L1 的前缀完全相同以及长度为 nR 的后缀完全相同,且没有比这个前缀和后缀更长的前缀和后缀。 可以发现对于一组 [L,R],满足条件的串还需要满足 \(S[L+ 阅读全文
posted @ 2022-03-14 08:59 Prean 阅读(30) 评论(0) 推荐(0) 编辑
摘要:确实牛逼。。。。。。这个转化我反正肯定想不到。。。 考虑 a=b 的情况。发现出了平局之外都是一半赢一半输。可以得到此时的答案为: 2a+bi=0a(ai)22 后面是范德蒙德卷积,可以得到答案是 \(\frac{2^{ 阅读全文
posted @ 2022-03-12 10:42 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要:《线 性 做 法》 首先我们对所有串建立 ACAM,不难发现对于一个 i,可能的 j 一定是 i 所有后缀节点在 fail 树上第一个被打标记的祖先。 但是这些祖先的内部可能在 fail 树上仍然存在祖孙关系。我们需要去掉存在祖孙关系的父亲节点。 我们将节点按照括号序的左端点 阅读全文
posted @ 2022-03-11 11:12 Prean 阅读(26) 评论(0) 推荐(0) 编辑
摘要:这两道题好像啊 贡献一种使用SAM和ACAM草两道题的方法 下面假装有 O(|S|=m)=O(n)。 你看看,这CF换过多少个出题人啦?换汤不换药啦!其实这两道题是同一个人出的 CF587F 根号分治。把长度大于 B 的串全部拿出来,有 mB 个串 阅读全文
posted @ 2022-03-10 16:41 Prean 阅读(119) 评论(0) 推荐(0) 编辑
摘要:某位寄吧的故事 下文的 m 即为题面中的 Q。 离散化,把序列变成 O(2m) 个部分,然后对这 O(2m) 个部分把最大值求出来,每次把最大值相同的部分拉出来,再把限制和这个最大值相同的也拉出来。我们假装这个最值叫 c。 然后是 dp。\(dp[n] 阅读全文
posted @ 2022-03-10 08:57 Prean 阅读(30) 评论(0) 推荐(0) 编辑
摘要:@CF1327F 最小值看着有点怪,先转化成最大值吧。。。反正没啥区别。。。 考虑把最大值相同的区间和限制为这个最大值的区间都拿出来。然后离散化。问题变为让所有区间都满足最值为 c。 考虑 DP。设 dp[n][k] 表示到序列上的第 n 个位置后,上一个 c 在第 阅读全文
posted @ 2022-03-09 16:25 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要:首先第一步,位运算拆位。变为一个区间的 And01。 如果 And1,那么所有数都需要为 1,否则为 0。 我们把所有可能为 0 的位置拉出来,然后和区间进行离散化。这个可以做到 O(n+m),处理每个位置前面 阅读全文
posted @ 2022-03-09 14:50 Prean 阅读(51) 评论(0) 推荐(0) 编辑
摘要:阴间状态,出题人是怎么想到的。。。 为啥lg题解全部都是直接丢状态不说是怎么想的啊。要是以后遇到阴间状态题该怎么想.jpg 首先通过观察,我们可以形象地定义染色:边权为 1 的边相当于将此边割掉,边权为 0 的边相当于不割掉。(这个是为了方便思考) 我们要做的就是让祖先不能到达孙子。 阅读全文
posted @ 2022-03-09 08:45 Prean 阅读(27) 评论(0) 推荐(0) 编辑
摘要:我们先枚举一个最大质因子,然后设 dp[n][k]n 以内使用了 pri[k] 以内的质数的数的最大质因子之和,答案就是: kndp[npri[k]][k]pri[k] 大于 \ 阅读全文
posted @ 2022-03-07 19:50 Prean 阅读(152) 评论(0) 推荐(0) 编辑
摘要:互不相同,太困难啦!!!!!! 考虑可以相同的情况。可以容斥。 ans=(1+1+1+1)(2+1+1)+(3+1)+(2+2)(4) 有点抽象,看看就好() \(ans=(a,b,c,d)-(a,a,b,c)-(a,b,a,c)-(a,b,c,a)-(a,b,b,c)-(a,b,c,b 阅读全文
posted @ 2022-03-07 15:49 Prean 阅读(22) 评论(0) 推荐(0) 编辑
摘要:看上去就很神秘。。。考虑建出图论模型。 我们将一张牌的两面 a,b 连一条边。 考虑一个连通块的意义是什么。 边是一张牌,容易发现,如果连通块是一棵树,那么选择一个根节点相当于可以打出除了根节点以外的所有牌。 如果连通块不是树,那么所有数都可以被打出。 容易发现,如果一个区间的一个子集全部都 阅读全文
posted @ 2022-03-07 15:29 Prean 阅读(30) 评论(0) 推荐(0) 编辑
摘要:算是刷新了我对树上问题的认知 首先第一问随便做一个 O(nk) 的 DP 就可以草过去,考虑第二问。 我们将问题分为两个部分:走儿子边的答案和走父亲边的答案。最后拼接一下就好了。 设 fd[u][k] 是走儿子边且距离不超过 k 的节点数量,fu[u][k] 是走父亲 阅读全文
posted @ 2022-03-07 14:33 Prean 阅读(25) 评论(0) 推荐(0) 编辑
摘要:这道题是我去年11月份的时候看到的,当时写了一个假的做法没过样例,然后就没管了。 结果今天在模拟赛的时候放到了 T1( 我也不知道他为什么是对的,可是他就是过了样例和大样例.jpg 容易发现 n 个矩形的边,将整个矩形划分成了 (2n)2 个小矩形。这样方便对每个小矩形考虑。 发现 阅读全文
posted @ 2022-03-05 16:21 Prean 阅读(20) 评论(0) 推荐(0) 编辑
摘要:第一眼似乎很困难,实际上非常简单( 好吧这题我做了一个小时( 首先期望具有线性性,我们转化为计算点对对答案的贡献。 发现相对位置一样的点对对答案的贡献是一样的。我们把相对位置一样的点对铃出来,乘了之后求和再计算贡献。 把点对拎出来是一个卷积,很容易做掉。 贡献考虑把两半边的方案数乘起来。 如果形如 阅读全文
posted @ 2022-03-04 14:58 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要:感觉博弈题都是高大上神秘结论。。。 感谢@KaiSuoShuTong 开锁疏通愿意教我这题的博弈部分/qq 考虑每次移动棋子,实际上是有一车 ai,每次操作相当于令 aic,ai+1+c。 考虑奇数位置上的 ai0 时的策略。我们发现如果此时先手走 阅读全文
posted @ 2022-03-04 10:26 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要:有点儿神秘? 根据他这个题意说的,白子向右的第一个一定是对应的黑子啊。 所以棋子的绝对位置是不重要的,我们只需要考虑白子和黑子的相对位置,然后考虑用 GF 来拼凑状态就好了。 下面的 k 是题面中的 k2。 这是一个 k-nim。k 堆石头每次最多选 \(d 阅读全文
posted @ 2022-03-03 19:56 Prean 阅读(34) 评论(0) 推荐(0) 编辑
摘要:冲了50分钟外加10分钟厕所才冲出来,请问我还有救吗。 看上去像是金组题目的加强版,实际上是金组题目的魔改版。 还是考虑像弱化版那样按照左端点排序,并且记录答案的 0k 次幂和。 然后考虑新增的贡献。仍然是右端点不超过自身构成的贡献。但是我们将这部分写成一个集合 |S|,我 阅读全文
posted @ 2022-03-03 09:20 Prean 阅读(30) 评论(0) 推荐(0) 编辑
摘要:这不是傻逼题吗?????? 考虑到第一张是王牌的概率为 1m,答案就是: i=0n(ni)(1m)i(11m)niik 我们设 f(x)=xk,x=1m阅读全文
posted @ 2022-03-02 21:58 Prean 阅读(39) 评论(0) 推荐(0) 编辑
摘要:《四重计树法》 有标号无根 prufer 序列,nn2。 有标号有根 prufer 序列,nn1。 无标号有根 设 f[n]n 个节点时的答案,有: \(f[n]=\sum_{k=1}^n\frac{[\sum_{i=1}^ks_i=n-1]\p 阅读全文
posted @ 2022-03-02 18:51 Prean 阅读(39) 评论(0) 推荐(0) 编辑
摘要:考虑正常 DAG 的有向生成树的方案数。 很明显发现,每个节点只需要挑一个父亲即可。方案数为 i=2nd[i]。 再考虑加上新边后新增的 DAG 数量。 将点分为两类。假设这条新边是 (s,t),那么我们将能到达 s 且能够被 t 到达的节点拎出来算 阅读全文
posted @ 2022-03-02 15:18 Prean 阅读(19) 评论(0) 推荐(0) 编辑
摘要:这题好牛逼啊。。。 虽然说也是 DP 套 DP,但是感觉比 TJOI 那题高明到哪里去了( 我们先考虑如何计算期望。如果设 fi 为拿到 i 张牌后胡的方案数,这个并不是很好做,因为你要考虑前面不胡。 所以我们设 fi 为手上有 13+i 张牌但还没有胡的方案数, 阅读全文
posted @ 2022-03-02 11:38 Prean 阅读(14) 评论(0) 推荐(0) 编辑
摘要:这题好像比较牛逼,好像又不是怎么样。 考虑两个串是如何计算 LCS 的。 这还不简单?dp[n][m]=max(max(dp[n1][m],dp[n][m1]),[s[n]==t[m]]dp[n1][m1])。 我们发现一件事情:\(dp[n][m]-dp[n][m-1]\leq 阅读全文
posted @ 2022-03-01 22:12 Prean 阅读(20) 评论(0) 推荐(0) 编辑
摘要:万 恶 之 源 十 二 重 计 数 法 先鸽子了 球有序,盒子有序 答案明显为 mn。 球有序,盒子有序,每个盒子最多放一个 答案明显为 (mn)n!。 球有序,盒子有序,每个盒子至少放一个 设问题 1 的方案数为 g(n,m),那么明显有 \(f( 阅读全文
posted @ 2022-03-01 16:18 Prean 阅读(20) 评论(0) 推荐(0) 编辑
摘要:第一眼,Burnside 直接丢上去啊。 设 f(n,m) 是有 nm 个白色珠子和 m 个白色珠子的满足题意的环的个数,容易得到答案是: d|n,d|mf(nd,md)φ(d) 考虑左边这个 f 阅读全文
posted @ 2022-03-01 11:50 Prean 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题意有点儿神秘,而且出题人可能有点大病( 项链由 n 颗珠子构成,相邻的珠子不能相同。 每颗珠子上有 3 个数字,这 3 个数之间没有顺序,且 gcd1。 为什么珠子是三菱柱啊 明确一下思路:先算出有多少种可能的珠子,再计算方案数。 有多少种可能的珠子 阅读全文
posted @ 2022-03-01 11:18 Prean 阅读(19) 评论(0) 推荐(0) 编辑

var canShowAdsense=function(){return !!0};
点击右上角即可分享
微信分享提示