![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
快速傅里叶变换
文章平均质量分 66
范艺杰
这个作者很懒,什么都没留下…
展开
-
51nod1387 移数字
题面 题目链接 解题思路 当nnn是偶数是,答案是n!n!n!,当nnn是奇数时,答案是n!2\frac{n!}{2}2n!。 这里记录一份跑的很快的MTT和求n!n!n!的模板,给出来源博客链接。 代码 #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; #define fp(i,a,b) for(int i=(a原创 2021-07-10 00:19:49 · 108 阅读 · 1 评论 -
51nod2576 k维空间套娃
题面 题目链接 解题思路 该题题目描述是有问题的,根据其题解可以分析出,该k维物体每一位的大小是相同的。 令dp[i][j]dp[i][j]dp[i][j]表示已经套了iii层,第iii层的宽度是jjj。 有如下转移dp[i][j]=∑i=1ndp[i][j−1]∗(n−i+1)kdp[i][j]=\sum_{i=1}^ndp[i][j - 1]*(n-i+ 1) ^kdp[i][j]=∑i=1ndp[i][j−1]∗(n−i+1)k。复杂度O(n2d)O(n^2d)O(n2d)。 考虑将转移系数写成矩原创 2021-07-08 15:36:11 · 281 阅读 · 1 评论 -
51nod1961 Power Sum
题面 题目链接 解题思路 按题解模拟即可,这里提供一份能跑过的代码。 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int MOD = 786433; const int G = 10; const int N = MOD * 8 + 5; int add(int a, int b) { return a + b >= MOD ?原创 2021-07-06 18:38:31 · 168 阅读 · 1 评论 -
51nod1907 小C的游戏
题目 题目链接 解题思路 题目可以转化成在一个仙人掌图上,求所有子图的连通块大小。 对于树边而言,其生成函数是1+x,代表选了不会产生更多连通块,不选会产生一个连通块。 对于环边而言,我们先将其环上的边多项式合并后,将大于0的项左移一位。 比如三元环而言,其边多项式是(1+x)3=1+3x+3x2+x3(1+x)^3=1+3x+3x^2+x^3(1+x)3=1+3x+3x2+x3 对于环而言,其多项式是4+3x+x24+3x+x^24+3x+x2 如此可以进行多项式的启发式合并,复杂度O(nlog2n)O原创 2021-06-17 14:21:24 · 99 阅读 · 1 评论 -
51nod1687 方差求和
解题思路 简化公式 ∑i=1n(ai−aˉ)2=∑i=1n(ai2−2aiaˉ+aˉ2)=∑i=1nai2−2aˉ∑i=1nai+naˉ2=∑i=1nai2−2naˉ2+naˉ2=∑i=1nai2−naˉ2\sum_{i=1}^n(a_i-\bar a)^2\\=\sum_{i=1}^n(a_i^2-2a_i\bar a+\bar a^2)\\=\sum_{i=1}^na_i^2-2\bar a\sum_{i=1}^nai+n\bar a^2\\=\sum_{i=1}^na_i^2-2n\bar a^2+n原创 2021-03-19 12:58:18 · 940 阅读 · 0 评论