
其他
文章平均质量分 75
DYT_B
略过
展开
-
算法学习:快速傅里叶变换(FFT)
前置知识:1.多项式:形如:f(x)=∑0n−1ai⋅xif(x)=\sum_{0}^{n-1}ai\cdot x^if(x)=0∑n−1ai⋅xi多项式表示法:系数表示法:就是上式的写法点值表示法:在f(x)上取n个点,就能唯一确定的表示出这个多项式。证明如下:∀\forall∀n点集合c定义集合A={a0,a1,a2,...,an−1a_0,a_1,a_2,...,a_...原创 2018-12-03 20:57:40 · 1561 阅读 · 0 评论 -
KM算法模板
代码如下:#include<cstdio>#include<string>#include<cstring>using namespace std;const int maxn=505;int n,m,n1,t,ans,lasl[maxn],lasr[maxn],g[maxn][maxn],tagl[maxn],tagr[maxn];bool...原创 2018-09-05 14:33:41 · 370 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器.
欢迎使用Markdown编辑器写博客(莫名其妙发出去的的第一篇blog)本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl +原创 2017-08-02 10:51:12 · 1365 阅读 · 0 评论 -
LCA模板
copy代码神器void dfs(int x){ for (int j=lnk[x];j;j=nxt[j]) if (!dep[son[j]]) { dep[son[j]]=dep[x]+1; f[son[j]][0]=x; fa[son[j]]=x; dfs(son[j]); }}void build(){ for (int j=1;j&l...原创 2018-03-15 19:28:32 · 199 阅读 · 0 评论 -
哈夫曼树的构造
定义:给定数列{ai} 哈夫曼数是一棵二叉树,满足数列中的所有的数都是它的叶节点,且每一个叶节点的权值*它到根的距离之和最短。构造方法:将原数列看成一个森林,每次挑出最小的两个节点合并,直到只剩下一个节点,就构造好了一颗哈夫曼树。 (证明略~)示例代码:#include<cstdio>#include<string>#include<...原创 2018-03-15 20:11:37 · 2031 阅读 · 0 评论 -
数论初步:辗转相除法和扩展欧几里得
1.辗转相除法虽然很久以前就知道这个方法了,但是一直都不明白原理【汗】 我们假设GCD(x,y)为x,y的最大公因数,那么有这样的一个结论: x&amp;amp;amp;amp;amp;amp;gt;=y时:GCD(x,y)=GCD(x%y,y)(如果x比y小则x%y还是等于x) 证明如下: 令x,y的最大公因数为n,则x|n,y|n,x%y &amp;amp;amp;amp;amp;amp;lt;=&amp;amp;amp;amp;amp;amp原创 2018-06-20 20:38:23 · 807 阅读 · 0 评论 -
数论初步:乘法逆元与几种求法
1.乘法逆元的定义及作用定义(口胡): 乘法逆元是取模运算中的一个东西。假设ax≡1 (mod p) 并且GCD(a,p)=1 (a,p互质),那么x就是a的逆元。对于给定的a和p,有且仅有一个数是它的逆元。乘法逆元的作用: 因为取模这个运算是不满足“除法分配率”的,这就导致了如果a,b或者p很大的话,(a/b) Mod p 这个运算就会爆精度。那么我们就要用另外一种方法来计算这个式子...原创 2018-06-21 16:01:00 · 1035 阅读 · 0 评论 -
数论初步:欧拉函数
1.欧拉函数的定义欧拉函数,又称为φ。φ(n)表示比n小的和n互质的数的个数。 举个栗子:φ(8)=4,因为1,3,5,7与8互质。2.欧拉函数的通式及证明欧拉函数有一个通式,即为:φ(n)=n∗(1−1/p1)∗(1−1/p2)∗……∗(1−1/pr) (p1…pr为n的所有质因子)。 证明: 首先:φ(a*b) = φ(a)*φ(b)(a,b互质时) ………………………………...原创 2018-06-23 14:58:27 · 857 阅读 · 0 评论 -
组合数学:第一类,第二类斯特林数
第一类斯特林数:我们考虑这样一个问题:有n个互不同的小球,拼成k个环,有几种拼法。数据量:n&amp;amp;amp;lt;=1000 这样的数据量,不难看出是一个n^2的DP或者说递推。 我们假设S(n,k)表示前n个小球,拼成k个环的方案数。 这样看似要知道每一个环中有几个小球,但是其实我们可以直接添加小球。 我们可以假设把小球加到某一个已经拼好的小球后面,那么这样就能枚举到每种情况。并且它是一个环,所以...原创 2018-07-13 21:04:25 · 1047 阅读 · 0 评论 -
排列组合初步
数学基础:公式大全: C0n+C1n+C2n...+Cnn=2nCn0+Cn1+Cn2...+Cnn=2nC_{n}^{0}+C_{n}^{1}+C_{n}^{2}...+C_{n}^{n}=2^{n} 1C1n+2C2n+3C3n...+nCnn=n2n−11Cn1+2Cn2+3Cn3...+nCnn=n2n−11C_{n}^{1}+2C_{n}^{2}+3C_{n}^{3}...+nC_{...原创 2018-07-26 16:21:45 · 804 阅读 · 0 评论 -
凸包算法:Graham模板
感觉这个算法比衍生版的Andrew算法优秀。 算法过程大致如下: 首先找到一个y坐标最小的点(y坐标相等就x最小)作为基准点,进行极角排序。这样能保证所有点到这个点的角度都在(-180,180]之间,就不用像Andrew一样维护上下凸壳了。 然后只要维护一下凸壳就好了(如果发现是凹的就退栈)。 最后如果要算面积就分解为三角形来算。 代码如下:#include<cstdio>...原创 2018-09-01 10:19:37 · 352 阅读 · 0 评论 -
10.23考试题解(内部资料,题面自行yy)
ps:神特么题目名周2152^{15} 暴力 代码如下:#include<cstdio>#include<string>using namespace std;const int maxn=20;int n,a[maxn],b[maxn],c[maxn],d[maxn];long long ans;bool vis[maxn];void check(){ long long原创 2017-10-23 20:22:48 · 619 阅读 · 0 评论