- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 Tarjan缩点
#include#include#include#include#include#include#define maxn 10005using namespace std;int n,m,w[maxn],dfn[maxn],low[maxn],tim,c[maxn],scc,W[maxn];bool insta[maxn];vectorg[maxn],e[maxn];sta
2017-10-31 19:21:21 197
原创 求树的直径
#include<cstdio>#include<vector>#include<algorithm>#include<cstring>#include<cctype>#define maxn 100005#define num ch-'0'using namespace std;int n,v,maxnum,loc,...
2017-10-31 14:15:07 204
原创 求树的质心
#include<cstdio>#include<algorithm>using namespace std;int n,x,y,son[101][101],cnt[101],Fa[101],size[101],sum,minx=1<<30,root;void dfs(int now){ size[now]=1; for(int i=0;i&l...
2017-10-31 14:10:48 290
原创 Prim
#include<cstdio>#include<algorithm>#include<cstring>#define maxn 5005using namespace std;int n,m,cst[maxn];struct node{ int to,nxt,w;}e[400005];int fir[maxn],cnt_e;...
2017-10-30 13:42:14 298
原创 并查集
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n,m;int f[10005];int find(int now){ return f[now]!=0?f[now]=find(f[now]):now; }int main(){ int...
2017-10-27 12:45:05 182
原创 Kruscal
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n,m;struct node{ int s,t,w; bool used; bool operator <(const node nxt)const{ return w<n...
2017-10-27 12:40:47 222
原创 LCA树链法
#include#include#include#include#include#define maxn 20005using namespace std;void get(int &res){ char ch; while(!isdigit(ch=getchar())); for(res=ch-'0';isdigit(ch=getchar());res=res*10+ch-
2017-10-26 14:12:48 251
原创 LCA倍增法
#include#include#include#includeusing namespace std;int n,m,fa[100005],dep[100005],f[100005][20];vectorg[100005];void get(int &res){ char ch; while(!isdigit(ch=getchar())); for(res=ch-'0'
2017-10-26 14:11:57 267
原创 矩阵运算
#include<cstdio> #include<cstring> #include<iostream>#include<cmath>#include<algorithm> #define mod 1000000007using namespace std; struct Mat{ int n,m...
2017-10-26 14:10:51 265
原创 stirling数(第一类、第二类)
#include<cstdio>#include<algorithm>#include<climits>#include<cstring>#define maxn 30using namespace std;int mod=INT_MAX;long long s[maxn][maxn];//存放Stirling数 voi...
2017-10-26 13:55:37 306
原创 Dijkstra
优先队列版本#include<cstdio>#include<cstring>#include<queue>#include<vector>#include<algorithm>using namespace std;int n,m,fir[100001],dis[100001],now,loc[100001],g[100001];struct node{ int w,t,nxt
2017-10-25 14:12:26 221
原创 SPFA
#include<cstdio>#include<queue>#include<cstring>using namespace std;queue<int>q;int F,N,M,W,dis[5001],a,b,w,pre[5001],z,flag,g[5001],fir[5001];struct node{ int t,wt,m;}st[500001];int main()
2017-10-25 14:10:45 158
原创 枚举一定条件的子集
#include#include#define maxn 100000using namespace std;int inv[maxn];void solve(int state){ for(int j=state;j;j-=j&-j) printf("%d\n",j);}int main(){ solve(2012); }
2017-10-25 14:07:48 231
原创 求区间乘法逆元
#include<cstdio>#include<algorithm>#define maxn 100000using namespace std;int inv[maxn];void solve(int n){//n为质数 inv[0]=inv[1]=1; for(int i=2;i<n;i++) inv[i]=(n-n/i)*inv[n%i]...
2017-10-25 13:57:50 218
原创 组合数
#include<cstdio>#define min(a,b) a>b?b:along long c,n,m;int main(){ while(~scanf("%lld%lld",&n,&m)){ if(n==0) return 0; m=min(m,n-m); c=1; for(long long i=n;i>n-m;i--...
2017-10-24 19:30:51 294
原创 有重复元素的全排列
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char a[11],ans[11];int vis[11],sum,num[11];bool check(int x,int len){ for(int i=1;i<len;i++) if(...
2017-10-24 19:29:44 985
原创 n的全排列
#include#includeusing namespace std;int n,vis[11],ans[11];void dfs(int x){ if(x==n) { for(int i=0;i<n;i++) printf("%d",ans[i]); printf("\n"); return; } for(int i=1;i<=n;i++) if(!
2017-10-24 19:27:05 292
原创 中国剩余定理
#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;int n,m;vector<int>a,b;void exgcd(long long a,long long b,long long...
2017-10-24 19:25:45 178
原创 康托展开式
#include<cstdio> #include<algorithm> #include<vector> using namespace std; int fac[2505] = {1, 1 ,2 ,6 ,24 ,120 ,720, 5040, 40320 ,362880},siz; int cantor(vector<int...
2017-10-24 14:14:02 235
原创 扩展gcd
void exgcd(long long a,long long b,long long &gcd,long long &x,long long &y){ if(!b) gcd=a,x=1,y=0; else exgcd(b,a%b,gcd,y,x), y-=a/b*x; }bool equation...
2017-10-24 14:11:30 323
原创 gcd和lcm
#include#include#includeusing namespace std;long long gcd(int a,int b){ return !b?a:gcd(b,a%b);}int main(){ long long a,b; scanf("%lld%lld",&a,&b); long long tmp=gcd(a,b); printf("%lld %l
2017-10-24 14:10:24 243
原创 倍增求快速幂,乘法,O(1) long long 乘法
#include<cstdio>#include<algorithm>#include<stdlib.h>#include<climits>#include<cstring>#include<ctime>#define MAXN LONG_LONG_MAX>>1using namespace std...
2017-10-24 14:09:02 1208
原创 质数判定(miller-rabin)
#include<cstdio>#include<cstring>#include<cctype>#include<stdlib.h>#include<algorithm>#define LL long longusing namespace std; LL mul(LL a,LL b,LL c){ return ((a...
2017-10-24 14:07:23 258
原创 筛法求欧拉函数(线性)
#include#include#include#define maxn 10000005using namespace std;long long n,phi[maxn];int siz;bool vis[maxn];vectorprime;int main(){ scanf("%lld",&n); phi[1]=1; for(int i=2;i<=n;i++
2017-10-23 14:03:02 216
原创 欧拉线性筛质数(线性)
#include<cstdio>#include<algorithm>#include<vector>#define maxn 10000005using namespace std;long long n;int siz;bool vis[maxn]={};vector<int>prime;int main(){ scan...
2017-10-23 13:47:20 180
原创 质因数分解
#include<cstdio>#include<vector>#define F first#define S secondusing namespace std;vector<pair<int,int> >prime;int main(){ long long n; scanf("%lld",&n); int ...
2017-10-23 13:35:06 449
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人