
模板
hhuhao
这个作者很懒,什么都没留下…
展开
-
[模板]次小生成树
次小生成树,是一个很(毫)有(无)意义的东西,在各大比赛中经(总)常(不)出现。 次小生成树,如同其名,就是一个图中第二小的生成树。 次小生成树,就是随意搞一搞。 复杂度大概O(nm) nm表示边和点数的乘积。 这是一个十分暴力的算法。 网上应该有更好的。 不过思考难度低。 容易一遍过。就是跑一边最小生成树。 找到那些边。 枚举删哪条边。 最优。 就是这样。/*ID:hh8原创 2017-04-08 11:39:04 · 253 阅读 · 0 评论 -
LCA(倍增)
LCA就是给定一棵有根树,和两个点,求他们的最近公共祖先(深度最大)一般算法先将两个点 u,v u,v 移到同一层,再同时上移,直到相等(比较容易想到不是吗)单次复杂度: O(n) O(n) 倍增算法求出每个点 i i 距离为 2k 2^k 的祖先(若没有则为 0 0 )可以用以下式子以 O(1) O(1) 的时间复杂度求出:fi,j=ffi,j−1,j−1 f_{i,j}=f_{f_原创 2017-09-09 17:21:29 · 271 阅读 · 0 评论 -
[模板]归并排序
一个二分水题 借用了一下百度的图片 代码如下int n,f[100010],g[100010];void sort(int l,int r){ if(l==r) rt; int mid=(l+r)>>1; sort(l,mid); sort(mid+1,r); int t1=l,t2=mid+1,t3=l; fr(i,l,r原创 2017-08-06 13:34:37 · 185 阅读 · 0 评论 -
[模板]乘法逆元
定义乘法逆元是一个十分有用的东西。 给定q,xq,x求x−1≡y(mod q)x^{-1}\equiv y(mod\ q) 就是说求xy=1(mod q)xy=1(mod\ q),yy的最小值意义在mod pmod\ p意义下 xy=x×y−1\dfrac xy = x \times y^{-1} 可以由此取整求法费马小定理yq≡y(mod q)y^q \equiv y(mod\ q)(q原创 2017-08-05 12:17:39 · 264 阅读 · 0 评论 -
[模板]manacher算法
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.字符串长度len <= 11000000原创 2017-07-23 08:56:00 · 189 阅读 · 0 评论 -
[模板]二维凸包(纯代码)
#define eps 1e-7struct point{ double x,y;}f[100010];bool cmp1(point a,point b){ rt a.y<b.y;}bool cmp2(point a,point b){ rt a.x*b.y<a.y*b.x;}bool check(point a,point b,point c){原创 2017-07-22 13:09:57 · 304 阅读 · 0 评论 -
[模板]线性基
模板第四弹难度较大,请勿弃疗给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。n<=50Sample Input33 2 1Sample Output3看上去莫名其妙地想贪心。。。 给些定义: SS为无符号整数集 即S∈N∗S\in N^*异或和记为Xor−Sum(S)Xor-Sum(S) Xor−Sum(S)=S1⊕S2⊕....⊕SnXor-Sum(S原创 2017-07-22 09:50:38 · 235 阅读 · 0 评论 -
[模板]三分法
模板第二弹题目选自:Luogu P3382 显然三分。 标题就是三分。 先给个代码。 每次都给那么长的代码,好像有点不太好,所以这次只给主代码(想要前面的很有意义莫名其妙的代码的可以翻我以前的博客)。原创 2017-07-02 14:01:22 · 433 阅读 · 0 评论 -
[模板]线性筛素数
第三弹啦!!! 貌似没写一个难点的模板,还有直接调用UOJ的表情不好吧←不要在意 题目来源:Luogu P3383bool p[10000010];原创 2017-07-02 14:33:31 · 226 阅读 · 0 评论 -
[模板]Dijkstra
决定开坑模板。原创 2017-07-02 11:48:52 · 145 阅读 · 0 评论 -
高斯消元法Gauss
一句话题意:给定n个n元一次方程组,求出它的解。 方程组给定方法: n 以下n行 每行n+1个数 表示: A1,1X1+A1,2X2...A1,nXn=A1,n+1 A2,1X1+A2,2X2...A2,nXn=A2,n+1 ... An,1X1+An,2X2...An,nXn=An,n+1 举个栗子例子: x+2y+3z=3 2x+3y+z=4 3x+y+2z=5原创 2017-04-09 11:43:40 · 572 阅读 · 0 评论 -
LCS长度个数计算
子串给定一个字符串 A1..n A_{1..n} 对于任意一个集合 G1..m G_{1..m} 并且 1≤G1<G2<⋯<Gm≤n 1\le G_1 < G_2 < \dots < G_m\le n 那么 AG1..m A_{G_{1..m}} 就是 A A 的一个子串如:AABC 就是ABCABC的一个子串LCS给定两个字符串 A,B A,B ,求出他们最长的公共子串 C C 意思是:原创 2017-09-10 14:50:15 · 890 阅读 · 0 评论