算法----模板
长沙橘子猫
这个作者很懒,什么都没留下…
展开
-
KMP算法模板
简单好用的模板:#include<stdio.h>#include<string.h>char a[1000],b[1000];int next[1000];void get(){ int i,j,len=strlen(b); next[0]=-1; for(i=0,j=-1;i<len;) if(j==-1||b[i]==b[j]) next[+...原创 2018-05-09 20:13:37 · 818 阅读 · 0 评论 -
LA 4287 Proving Equivalences 强连通分量
LA 4287白书上例题,码了刘汝佳的模板,图论刷着很有意思,感觉很多图论算法需要备模板才行....可以把题意问题转化,变成至少需要加几条边把N个点变成强连通图,那么可以先把每个强连通分量求出来当做一个点重新构图,然后再求这个新的图的0入度点个数和0出度点个数,答案就是其中的max,记得特判,如果原始图已经是强连通,答案是0#include<cstdio>#include<cs...原创 2018-06-21 19:57:14 · 156 阅读 · 0 评论 -
UVA 1364 Knights of the Round Table 双联通分量
UVA 1364题意:有n个人在圆桌上开会,每次会议至少3个人参加,相互讨厌的人不能坐一起,而且每次开会的人数必须是奇数,给出m个互相讨厌的两个人,求有多少个人不能参加任何一次会议。第一次学双联通分量,就是一个这么巧妙的题,思路是将没有相互讨厌的人用无向图连接,然后求出每个双联通分量,在每个双联通分量中,能构成奇圈的人肯定可以参加会议,然后在总人数中减去这些人即可,判断奇圈的方法竟然是用二分图,真...原创 2018-06-17 21:43:45 · 190 阅读 · 0 评论 -
主席树模板
HDU 2665花了不少的时间,终于是明白了主席树的思想,从 殇雪 这位大神写的解析里学的,代码也是以她的代码为模板而写的,这是个求区间第k大的模板题,之前用归并树ac,时间4000ms左右,今天用主席树,时间800ms。先把模板代码记下了。(这题和模板是求区间第k小)#include<cstdio>#include<cstring>#include<a...原创 2018-06-08 21:17:27 · 404 阅读 · 0 评论 -
洛谷 P2617 Dynamic Rankings 树状数组套主席树 动态求区间第k大
P2317思路以及代码是学习这位大佬的: GuessYCB建好主席树后,每当修改某个数时,还要修改其后续的线段树,可以借用树状数组,存的是每颗线段树的第一个节点,用树状数组去更新后续的线段树,复杂度logn*logn,那么如何去查询呢,将主席树的查询以及树状数组的查询结合就好了,比如查找1--n的第k大,先用树状数组快速找到需要查询的线段树,假设找到了x个线段树,接下来就是主席树的查询方法...原创 2018-07-29 21:01:44 · 497 阅读 · 6 评论 -
UVA 11922 Permutation Transformer 伸展树(模板)
题意:有个原始数列1,2,3..n,有m个指令,每个指令(a,b)表示取出第a~b个元素,翻转后添加到排列的尾部。思路:白书上的例题,学过splay树后就不怎么难了,先贴个模板,需要注意的是得多加个0在原始数列前面,方便分裂序列。#include<cstdio>#include<cstring>#include<algorithm>using n...原创 2018-07-29 21:11:10 · 178 阅读 · 0 评论 -
UVA 11297 Census 二维线段树
UVA 11297题意:给你一个n*n的矩阵,有m个询问,q x1 y1 x2 y2 查询这个子矩阵的最大值和最小值,c x y v是将x,y点的值改成c。思路:二维线段树裸题,没啥好讲的,当做模板吧。#include<cstdio>#include<cstring>#include<algorithm>using namespace std...原创 2018-08-03 22:22:57 · 191 阅读 · 0 评论 -
数学模板
拓展欧几里得zoj 3593#include<bits/stdc++.h>#define ll long longusing namespace std;void exgcd(ll x,ll b,ll& d,ll& x,ll& y){ if(!b)d=a,x=1,y=0; else { exgcd(b,a%b,d,y,x); y-...原创 2019-03-13 00:50:19 · 225 阅读 · 0 评论