![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
MallowYi
这个作者很懒,什么都没留下…
展开
-
模板 待更新
1.gcdint gcd(int a,int b){ return b?gcd(b,a%b):a;} 2.扩展gcd )extend great common divisor ll exgcd(ll l,ll r,ll &x,ll &y){ if(r==0){x=1;y=0;return l;} else { ...转载 2018-08-06 17:24:27 · 228 阅读 · 0 评论 -
计算多边形重心 模板
#include <iostream>#include <cstdio>using namespace std;int T, N, x[3], y[3];double sumx, sumy, sumarea;int main(){ scanf("%d", &T); while(T--) { sumx = su...原创 2018-08-10 17:27:18 · 397 阅读 · 0 评论 -
凸包 周长 模板
#include <iostream>#include <cmath>#include <cstdio>#include <algorithm>using namespace std;struct Point { double x, y; Point friend operator - (Point a, Point b...原创 2018-08-10 17:44:17 · 364 阅读 · 0 评论 -
KMP 模板
next数组的求法#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int next1[11000000];char str[11000000];void getnext(int l){ ...原创 2018-08-14 15:59:52 · 229 阅读 · 0 评论 -
判断凸包 模板(向量叉乘)
#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <string>#include <algorithm>#include <iostream>using namespace std;const原创 2018-08-11 10:46:54 · 384 阅读 · 0 评论 -
SPFA+链式前向星 模板
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<queue>#define inf 999999999#define MAX转载 2018-08-03 14:31:39 · 309 阅读 · 0 评论 -
矩阵快速幂 模板
#include<cstdio>#include<cmath>//pow函数,其实没啥用 using namespace std;int n;long long k;const int N=pow(10,9)+7;struct node{long long a[105][105];};node shu,ans,mp;//shu是输入的矩阵,ans是所求答...转载 2018-08-08 14:04:17 · 121 阅读 · 0 评论 -
素数
#一.素数的一些性质:素数的个数无限多(不存在最大的素数)存在任意长的一段连续数,其中的所有数都是合数(相邻素数之间的间隔任意大)所有大于2的素数都可以唯一地表示成两个平方数之差。(证明:大于2的素数都是奇数。假设这个数是2n+1。由于 (n+1)2=n2+2n+1,(n+1)2和n2就是我们要找的两个平方数。下面证明这个方案是唯一的。如果素数p能表示成a2-b2,则p=...原创 2019-01-20 18:14:49 · 452 阅读 · 2 评论 -
判断素数(不打表)
#include <iostream>#include <math.h>using namespace std;int isPrime(int n){ //返回1表示判断为质数,0为非质数,在此没有进行输入异常检测 float n_sqrt; if(n==2 || n==3) return 1; if(n%6!=1 && n%6!=5) re...原创 2019-01-16 16:31:11 · 219 阅读 · 2 评论 -
Manacher's Algorithm 马拉车算法 模板
#include <vector>#include <iostream>#include <string>using namespace std;string Manacher(string s) { // Insert '#' string t = "$#"; for (int i = 0; i < s.size()...转载 2019-02-19 12:48:21 · 627 阅读 · 0 评论 -
逆元
1.乘法逆元如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。2.费马小定理:假如a是一个整数,p是一个质数,那么是p的倍数,可以表示为如果a不是p的倍数,这个定理也可以写成3.扩展欧几里得已知整数a、b,扩展欧几里得算法可以在求得a、b的最大公约数的同时,能找到整数x、y(其中一个很可能是负数),使...原创 2019-04-12 13:12:28 · 343 阅读 · 0 评论 -
筛选素数 + 欧拉函数 (结合版)
int prime[1000010];int Euler(int n)//筛选素数+求<=n的与n互素的数{ int i,j; int m=n;//因为下面的n是要变得,所以先将n存起来 int c=n;//返回的是pji[m] memset(prime,0,sizeof(prime)); for(i=2;i*i<=n;i++){ ...原创 2019-04-15 21:58:23 · 220 阅读 · 0 评论 -
大素数判定 + 大素数分解
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<vector>#include<algorithm>#include<map>#include<string>using namespa...原创 2019-04-18 22:39:21 · 2864 阅读 · 0 评论 -
高精度求模(同余定理)
#include <bits/stdc++.h>using namespace std;const int mod = 1e2;int high(string s,const int &mod){ int ans = 0; for(int i=0;i<s.length();i++){ ans = (ans*10+s[i]-'0')%mod; } ret...原创 2019-05-03 14:21:23 · 572 阅读 · 0 评论 -
计算周几公式
基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7int whatday(int y, int m, int d)//模板{ int ans; if(m==1||m==2) m += 12, y--; if((y<1752)||(y...原创 2019-05-01 14:10:47 · 1115 阅读 · 0 评论 -
计算线段交点数量 模板
#include<stdio.h>#include<math.h>#include<iostream>using namespace std;struct Line{ double x1,y1,x2,y2;}node[11000];bool solve(Line a,Line b){ if(((a.x1-b.x1)*(a.y2-...原创 2018-08-10 16:36:34 · 967 阅读 · 0 评论 -
计算任意多边形面积 模板
struct Point { double x, y;};//计算任意多边形的面积,顶点按照顺时针或者逆时针方向排列double polygon_area(Point *p, int n){ if(n < 3) return 0; double sum = 0; p[n + 1] = p[1]; for(int i = 1; i <...原创 2018-08-10 16:02:55 · 471 阅读 · 0 评论 -
欧拉函数 模板
long long oula(long long n){ long long rea=n; for(int i=2; i*i<=n; i++) if(n%i==0)//第一次找到的必为素因子 { rea=rea-rea/i; do n/=i;//把该素因子全部约...转载 2018-08-06 15:42:31 · 133 阅读 · 0 评论 -
Dijkstra算法模板---单源最短路---目前最好理解的233
#include#include#include#include#include#include#include#define ll long longusing namespace std;int main(){ int e[1111][1111],dis[1111],book[1111],n,m,t1,t2,t3,u,min; int inf=0x3f3f3原创 2018-01-30 10:47:46 · 329 阅读 · 0 评论 -
最小生成树---Kruskal---模板
#include#include#include#include#include#include#include#include#include#include#define ll long longusing namespace std;struct edge{ int u; int v; int w;};struct edge e[10];原创 2018-01-30 14:22:51 · 236 阅读 · 0 评论 -
进制转化---模板
char digits[]={'0','1','2','3','4','5','6','7','8','9' ,'a','b','c','d','e','f'};//全局变量void convert(int y,int x){ if(x!=0) { convert(y,x/y); printf("%c",digits[x%y]); ...原创 2018-02-07 17:31:52 · 198 阅读 · 0 评论 -
大数阶乘
#include#include#include#includeusing namespace std;int main() { int n; while(scanf("%d",&n)!=EOF){ int a[100005]= {0},b[100005]= {0},s=0,t=1; a[0]=1; for(int i=1原创 2018-01-22 13:53:27 · 204 阅读 · 0 评论 -
大数问题(模板)
转自:http://blog.csdn.net/hackbuteer1/article/details/6595881分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法、减法、乘法、除法、n次方、取模、大小比较、赋值以及输入流、输出流的重载。。 并且使用这个大数模板,顺利AC了HDOJ上的1134这个题目的Catalan数计数问题。。http://转载 2017-12-12 23:12:20 · 307 阅读 · 0 评论 -
快速幂模板(c)
long long quickmod(long long a,long long b,long long m) { long long ans = 1; while(b)//用一个循环从右到左便利b的所有二进制位 { if(b&1)//判断此时b[i]的二进制位是否为1 { ans = (a转载 2017-12-12 22:56:27 · 292 阅读 · 0 评论 -
二分查找(c)
#include #include #define NR(x) (sizeof(x)/sizeof(x[0])) int BinarySerach(int a[],int size,int p) { int L = 0 ; //查找区间的左端点 int R = size - 1 ; //查找区间的右端点 int mid ;转载 2017-12-12 22:41:35 · 260 阅读 · 0 评论 -
筛选法求质数(埃氏筛法)
#include <stdio.h>bool a[2000005];int main(){ int n; for(int i=2;i<=2000005;i++){ a[i]=1; } for(int i=2;i<=2000000;i++){ if(a[i]){ for(int j=i+i;j<=2000005;j+=i){ ...原创 2017-11-23 14:49:46 · 2466 阅读 · 0 评论 -
Pair用法 C++
Pair相当于一个只有两个元素的Struct,用起来比较方便.1.类模板:template<class T1,class T2> struct pair; T1是第一个元素,T2是第二个元素,两者的类型可自己定义; 例如: pair<int , int> q1; pair<int , string> q2; pair&l...原创 2018-04-01 11:37:10 · 442 阅读 · 0 评论 -
环形字典序最小模板
#include<iostream>using namespace std;int min_express(char * a,int len){ int i=0,j=1; //当前比较的位置 int t; //字典序比较结果 int k=0; //偏移 while(i<len && j<len &&a...转载 2018-04-06 14:54:30 · 411 阅读 · 0 评论 -
线段树 点更新 模板
#include <stdio.h>#define N 100005int a[N],f[4*N];int n;void build(int l,int r,int now){ if(l==r){ f[now]=a[l]; return; } int mid=(l+r)>>1; build(l,mid...原创 2018-08-03 16:26:42 · 163 阅读 · 0 评论 -
线段树 区间查询 版子
#include<stdio.h>#include<algorithm>#include<iostream>usingnamespace std;constint MAXN=100000;int num[MAXN];struct Node{ int l,r;//区间的左右端点longlong nSum;//区间上的和longlong ...转载 2018-08-04 20:04:59 · 138 阅读 · 0 评论 -
卢卡斯 模板
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<cmath>using namespace std;#define ll long longconst int Max = 1e6;#define MOD 1000...原创 2018-08-09 10:29:05 · 314 阅读 · 0 评论 -
Dijkstra 版子
#include <iostream>#include <stdio.h>#include <cstring>#include <vector>#include <cmath>#include <algorithm>#include <set>#include <cassert&转载 2018-08-04 23:31:55 · 142 阅读 · 0 评论 -
SPFA 模板
#include <stdio.h>#include <string.h>#include <queue>#define N 505#define INF 0x3f3f3f3fusing namespace std;int book[N];int dis[N][N];int dist[N];int n,m,w;int dig[N];que...原创 2018-08-01 12:20:04 · 260 阅读 · 0 评论 -
数据转换
一.1.string转long (注意:atoi()在stdlib.h)(1).#include #include #include using namespace std;int main (){ string a = "1234567890"; long b = atoi(a.c_str()); cout<<b<<endl; ret转载 2018-02-02 10:11:18 · 255 阅读 · 1 评论