上一页 1 2 3 4 5 6 ··· 29 下一页
摘要: 文本生成器 要记住一点,$next[now][c]$指向的是在$now$指向的这一节点所表示的字符串$S$再添加一个字母$c$所能形成的字符串。有两种可能,①存在$S’=S+c$,②存在$S'$为$S+c$的最长真后缀,也就是说,要再目标串中看有多少模式串,只需要在遍历目标串的时候无脑往后面加字符$ 阅读全文
posted @ 2021-04-16 11:10 caoanda 阅读(239) 评论(0) 推荐(0) 编辑
摘要: C - Planar Reflections 参考:Codeforces 1498C - Planar Reflections (DP) 对于 dp 而言,就是要发现其中可以递推的东西。 \(dp[i][j]=dp[n-i][j-1](表示反射的粒子)+dp[i-1][j](表示穿过的粒子)\) 第 阅读全文
posted @ 2021-04-01 14:22 caoanda 阅读(126) 评论(0) 推荐(0) 编辑
摘要: D - Returning Home 参考:D:Returning Home-Codeforces Round #675 (Div. 2) 最短路的题难点在于建图,这道题的图不是特别难建 思路:对于每一个点,分别与 x 轴和 y 轴上相邻的两个点,连边,然后起点与每一个点连边即可。 //Create 阅读全文
posted @ 2020-12-11 14:39 caoanda 阅读(158) 评论(0) 推荐(0) 编辑
摘要: F. Fruit Sequences 参考:tutorial 遇到这种求$\sum_^n\sum_^nf(l,r)$的一般情况下都是固定一个端点,然后快速求解值即可。 这种题的解决办法就是寻找不同状态之间是如何转移的,然后要能够很快地转移过去,然后就可以得到答案了。 #include <bits/s 阅读全文
posted @ 2020-12-04 15:58 caoanda 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 自定义哈希 struct custom_hash { static uint64_t splitmix64(uint64_t x) { // http://xorshift.di.unimi.it/splitmix64.c x += 0x9e3779b97f4a7c15; x = (x ^ (x > 阅读全文
posted @ 2020-12-04 15:27 caoanda 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Censored! 其实这题的思路也大同小异,利用AC自动机建 trie 图之后,构建可达矩阵,可达矩阵 m 次方后,第一行的值就是答案。需要注意,这个题的答案很大,需要用到高精度,所以把高精度跟矩阵乘法结合即可。 如果单纯只是这样的话,先会 re 然后再 t,wa 是因为读入的字符串的范围是$[3 阅读全文
posted @ 2020-12-03 19:46 caoanda 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 考研路茫茫——单词情结 这个题也是用AC自动机记录状态,然后得到状态转移矩阵。 因为这道题求的是包括词根的,所以我们先得到不包括词根,然后再用总数减去即可得到。 另外需要注意的一点是,长度不超过L,这又跟之前写的那道限定长度的题不同了,需要在矩阵中再添加一列,用于求和,这一列的值全为1,通过,手推即 阅读全文
posted @ 2020-12-03 11:21 caoanda 阅读(120) 评论(0) 推荐(0) 编辑
摘要: DNA Sequence 参考:AC自动机+矩阵快速幂 POJ 2778 先用AC 自动机保存其状态,用end数组标记那些不能到达的点,并且要注意的一点是如果一个病毒串为abcdef,另一个病毒串为aaabcdef,不止是需要标记这两个串,还需要标记aaabcdef和aabcdef,这个可以在进行自 阅读全文
posted @ 2020-11-21 16:14 caoanda 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Catching Cheaters 其实就是把最长公共子序列的 dp 维护的值变为$4LCS(C,D)-|C|-|D|$的值就好了。 #include<bits/stdc++.h> using namespace std; const int maxn=5005; int dp[maxn][maxn 阅读全文
posted @ 2020-11-19 18:33 caoanda 阅读(112) 评论(0) 推荐(0) 编辑
摘要: AC自动机 求解一个目标串匹配多个模式串的问题 下面模板求解的是有多少种模式串在目标串中出现 // Created by CAD #include <bits/stdc++.h> #define mst(name, value) memset(name,value,sizeof(name)) usi 阅读全文
posted @ 2020-10-16 17:10 caoanda 阅读(121) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 29 下一页