摘要: 1 void dfs(int x) 2 { 3 dp[x][1]=s[i],size[x]=1; 4 for(int i=first[x];i;i=next[i]) 5 { 6 // first[x]相当于边,to[i]是x的子节点 7 dfs(to[i]); 8 for(int j=cmin(m,size[... 阅读全文
posted @ 2019-08-21 23:21 小布鞋 阅读(211) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; const int nmaxn=5000+8,mmaxn=50000+7; bool vis[nmaxn]; int h[nmaxn],dis[nmaxn],ef[nmaxn],pre[nmaxn],num[nmaxn]; struct edge{ int to,nex,fl,co; }e[mmaxn q; q.push... 阅读全文
posted @ 2019-08-21 23:19 小布鞋 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1 /*for(遍历图中所有不属于最小生成树的边) 2 把当前边加入最小生成树产生回路 3 去掉回路中除当前边之外权值最大的边 4 记录下现在的树及其总权值 5 在上面循环产生的树中选一棵总权值最小的,就是次小生成树*/ 6 /*上面做法只遍历一次最小生成树,但是如果枚举删去最小生成树上的边,那就要求n-2次最小生成树了,所以不可取*/ 7 #include <cstdio> 8 #include 阅读全文
posted @ 2019-08-21 23:17 小布鞋 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 const int N=1e5+8; 4 int cnt=1; 5 struct edge{ 6 int to,nex,w; 7 }e[2*N]; 8 int s,t,n,m; 9 int h[N],cur[N],gap[N],dep[N],pre[N]; 10 void add... 阅读全文
posted @ 2019-08-21 23:16 小布鞋 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 1 long long ksj(long long a,long long b,long long c) //快速积取模 a*b%c 2 { 3 long long ans=0; 4 while(b){ 5 if(b&1) 6 ans=(ans+a)%c; 7 a=(a+a)%c; 8 ... 阅读全文
posted @ 2019-08-21 23:15 小布鞋 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 1e18 8 const int N=1000+7; 9 struct node{ 10 int x,y,z; 11 }num[N]; 12 double h[N][N],len[N][N... 阅读全文
posted @ 2019-08-21 23:15 小布鞋 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #define maxn 5000000+10 6 using namespace std; 7 char str[maxn*2]; 8 struct node{ 9 int fail;//失配指针; 10 int cnt;//单词出现的次数; 11 int n... 阅读全文
posted @ 2019-08-21 23:13 小布鞋 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1 bool dfs(int u) 2 { 3 for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点 4 int v = edges[*i].to; 5 if (!check[v]) { // 要求不在交替路中 6 check[v] = true; // 放入交替路 7 if (matching[v] == 阅读全文
posted @ 2019-08-21 23:12 小布鞋 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 也就是树状数组加线段树 阅读全文
posted @ 2019-08-21 23:11 小布鞋 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 1 // poj2104 2 // p3834 3 #include 4 #include 5 #include 6 using namespace std; 7 const int N=1e5+7; 8 int a[N],b[N],rt[N]; 9 int cnt=0; 10 struct node{ 11 int l,r,sum; 12 }tr[N*20]; 13 ... 阅读全文
posted @ 2019-08-21 23:09 小布鞋 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 using namespace std; 5 struct node{ 6 int cnt; //记录出现次数 7 int nex[30];//该节点下一个儿子的节点 8 }trie[400500]; 9 char s1[105],s2[105]; 10 int tot=1;//也可以0 1... 阅读全文
posted @ 2019-08-21 23:08 小布鞋 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1 dis[1]=0; 2 q.push(make_pair(0,1)); 3 while(!q.empty()) 4 { 5 int u=q.top().second; 6 q.pop(); 7 if(vis[u]) continue; 8 vis[u]=1; 9 ... 阅读全文
posted @ 2019-08-21 23:06 小布鞋 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 int a[1000+5][1000+5]; 4 int X[1000+5][1000+5]; 5 int x[1000+5][1000+5]; 6 int Y[1000+5][1000+5]; 7 int y[1000+5][1000+5]; 8 int Q[1000+5]; 9 int q[1000+... 阅读全文
posted @ 2019-08-21 23:06 小布鞋 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int f[(int)1e4+7]; 4 int find(int k){ 5 if(f[k]==k) return k; 6 else return f[k]=find(f[k]); 7 } 8 阅读全文
posted @ 2019-08-21 23:01 小布鞋 阅读(160) 评论(0) 推荐(0) 编辑