摘要: 任意模数多项式乘法 MTT 三模数 NTT 固然可以,我们来试试拆系数 FFT(MTT),考虑 F(x),G(x) 两个多项式改写为 F(x)=A(x)+c×B(x),G(x)=C(x)+c×D(x),其中 \(c = 32 阅读全文
posted @ 2025-04-14 17:23 YipChip 阅读(2) 评论(0) 推荐(0)
摘要: FFT 经典板子,采用三步并两步优化。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll, ll> PII; typedef pair< 阅读全文
posted @ 2025-04-08 21:24 YipChip 阅读(7) 评论(0) 推荐(0)
摘要: G - Same Sum 神秘题目,感觉是某一类典题。 考虑维护一个区间的怎么匹配,很显然是头尾匹配,否则会形成偏序关系导致大小不等。 题解很神秘的掏出了一个哈希函数 F+(l,r)=ri=lxai
\[F_{-}(l, \, r) = \su 阅读全文
posted @ 2025-04-06 21:38 YipChip 阅读(5) 评论(0) 推荐(0)
摘要: E. Porto Vs. Benfica 题意说的很清楚了,这里就不再过多阐述。 有个很直接了当的算法就是,枚举每一个点,并且枚举它相邻的一条边,从 1 跑到这个点的最短路加上这个点不经过这条边到 n 的最短路之和。 设 dist(u,v) 表示 \(u, \, v\ 阅读全文
posted @ 2025-03-31 20:44 YipChip 阅读(6) 评论(0) 推荐(0)
摘要: 这东西其实蛮像最小斯坦纳树,不过我们通过状压DP的思想来讲一讲这个题。 形式化题意:考虑一共有 n 个点,m 条无向边,你需要从图中选出至多 K 条闭合路径,使得所有 w 个关键点都被覆盖,使得最长路径最小。 容易发现 n500,因此我们可以通过 F 阅读全文
posted @ 2025-03-31 14:33 YipChip 阅读(12) 评论(0) 推荐(0)
摘要: 子集遍历 for (int i = 0; i < 1 << n; i ++ ) 这个代码可以从 0 开始不重复的遍历每一个二进制数,因此时间复杂度 O(2n)。 子集枚举 有的时候,我们希望枚举集合 i 所对应的所有自己,显然我们不可能循环套循环求与的方法做,时间复杂度是 阅读全文
posted @ 2025-03-30 01:08 YipChip 阅读(5) 评论(0) 推荐(0)
摘要: 对正串和反串分别建立 Trie 树,定义 dp[i][j] 表示正串 Trie 树上编号为 i 的点匹配反串 Trie 树上编号为 j 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明, 阅读全文
posted @ 2025-03-27 23:42 YipChip 阅读(7) 评论(0) 推荐(0)
摘要: 利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 f[i][j] 表示考虑用到第 i 个大写字母的时候,s 匹配到第 j 个字符时最长匹配数。 当前大写字母 t[pos[i]]=s[j] 时,显然有 \(f[i][j] = f[i] 阅读全文
posted @ 2025-03-27 23:03 YipChip 阅读(3) 评论(0) 推荐(0)
摘要: 英语不好吃大亏,题意想表达的是对于所有 n 元排列的 w(P) 最小,并不是满足 p1=s,pm=t 的排列,因此最小的 w(P)=2,如果你看假了,这个题分讨没法做。 首先 w(P)=2 能在什么条件满足?P 如果是个模 阅读全文
posted @ 2025-03-27 15:49 YipChip 阅读(4) 评论(0) 推荐(0)
摘要: 31 完全背包求方案数,具体参见代码。 // cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 10; int main() { vector<ll> f(201); 阅读全文
posted @ 2025-03-24 21:06 YipChip 阅读(3) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示