
模板
文章平均质量分 75
laserss
laserss@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
扩展欧几里德
在辗转相除gcd(a,b)的基础上加以扩展 可以得到使等式 a*x+b*y=1 成立的解 #include using namespace std; int x,y; int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } int exgcd(int a,int b,int &x,int &y) {原创 2012-08-18 17:14:23 · 841 阅读 · 0 评论 -
hdu2586 LCA模板
hdu2586 先预处理 然后是 在线询问 (也就是一边读入一边查询) #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include using namespace std; #define maxn 400010 int n; struct Nod原创 2012-12-06 17:27:26 · 4660 阅读 · 1 评论 -
hdu1558并查集+线段相交
hdu1558 关于线段相交的内容参考算法导论P577 #include #include #include using namespace std; int pre[1010],sum[1010]; struct point{ double x,y; }; struct EDGE{ point a,b; } edge[1010]; int E;//边数 int Fi原创 2012-12-03 11:33:44 · 1523 阅读 · 0 评论 -
fzu2015vote 组合 逆元
fzu2015 http://fayaa.com/code/view/27362/raw/ #include #include using namespace std; __int64 jc[210],mod=1000000007; __int64 exgcd(__int64 a,__int64 b,__int64 &x,__int64 &y){ if(b==0) return原创 2012-12-02 15:37:24 · 830 阅读 · 0 评论 -
数论笔记
欧几里德算法概述: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) 欧几里得算法的公式表述 gcd(a,b)=gcd(b,a mod b) 证明:a可以表示成a = kb + r原创 2012-11-30 17:57:37 · 2004 阅读 · 0 评论 -
hdu3037Saving Beans lucas定理
hdu3037 lucas 对组合数取模 lucas(n,m)=C(n%mod,m%mod)*lucas(n/mod,m/mod)%mod; lucas(n,0)=1; #include #include using namespace std; __int64 jc[100010]; __int64 exgcd(__int64 a,__int64 b,__int64原创 2012-12-02 17:23:28 · 1172 阅读 · 0 评论 -
hdu1358 KMP-next数组的应用
hdu1358 next数组贮存的是String中前i位字符 最长相同的前后缀长度+1。 i-next[i] 则表示前i 位中循环节的长度 #include #include using namespace std; char T[1000010]; int next[1000010]; int N,M; void GetNext() { int i=1,j=0; n原创 2012-11-16 12:52:55 · 998 阅读 · 0 评论 -
hdu4135 互斥+容斥原理
hdu4135 网上学到到的递归写法 #include #include #include using namespace std; int fac[20]; void Init(int m) { int i,n=0; for(i=2;i*i<=m;i++) if(m%i==0){ fac[++n]=i; while原创 2012-11-29 16:31:40 · 2000 阅读 · 0 评论 -
上界,下界,二分查找
直接上代码了 有注释 //Author: laserss //Time : 2012/11/14 //email : dellaser@163.com #include #include #include #include using namespace std; int bsearch(int A[],int size,int x) //二分查找 { i原创 2012-11-14 20:45:43 · 2991 阅读 · 2 评论 -
hdu1711 KMP模板
hdu1711 在大话数据结构上看到的代码。 貌似效率不是很高 提交页面用时比这个少的一大堆 #include #include using namespace std; int S[1000010],T[10010],next[10010],N,M; void GetNext() { int i=1,j=0; next[1]=0; while(i<M) {原创 2012-11-03 22:46:09 · 709 阅读 · 0 评论 -
欧拉函数
欧拉函数:求小于n且与n互质(最大公约数为1)的数的个数 #include int Euler(int x) { int i,sum=x; for(i=2;i*i<=x;i++) { if(x%i==0) { sum-=sum/i; //不是很明白,为什么不是sum-=x/i ——参考因数分解 while(x%i==0) x/=i;原创 2012-08-18 14:04:45 · 1583 阅读 · 0 评论 -
一道母函数的模板题 (hdu 2082)
终于算弄明白母函数是什么东西了 = = , 呼~ 感觉它利用了高中学的二项式定理(就是用到组合数的那个) 完完全全的利用啊~~!以前用二项式求出最后那超长的x的表达式( 1 + C(n,1)*x^1 + C(n,2)*x^2 +~~~~~+ C(n,n-1)*x^(n-1) + C(n,n)*x^n )之后好歹还会给x赋个值算个答案 到母函数这连赋值都省了……x就代表一个实体,原创 2012-07-17 22:03:04 · 2987 阅读 · 0 评论 -
优先队列
在普通队列的基础上 以权值大小执行进出队列的操作 #include #include using namespace std; struct point { int x,y,step; friend bool operator <(point t1,point t2) { // return t1.step>t2.step; //从小到大 return t1原创 2012-08-16 11:00:02 · 580 阅读 · 0 评论 -
hdu2824筛选法欧拉函数+求和
hdu2824 筛选版本的欧拉公式模板 #include #define MAX 3000000 using namespace std; __int64 E[MAX+10]; void init() //模板 { int i,j; memset(E,0,sizeof(E)); E[1]=1; for(i=2;i<=原创 2012-08-18 21:45:51 · 2711 阅读 · 0 评论 -
hdu1269 Tarjan强连通分量 模板
hdu1269 资料 师兄给的模板 /*2012-12-06 20:16:08 Accepted 1269 46MS 1484K 1339 B C++*/ #include #include #include using namespace std; #define maxn 10010 int n; vector g[maxn]; int Bcnt;原创 2012-12-06 21:59:38 · 4120 阅读 · 1 评论