摘要:
代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 5 const int maxn = 3000000+100; 6 int phi[maxn]; 7 int a,b; 8 9 void phi_table(int n)10 {11 memset(phi,0,sizeof(phi));12 phi[1] = 1;13 for(int i = 2;i <= n;i ++)14 {15 if(!phi[i])16 {17 ... 阅读全文
摘要:
以下内容如有问题,还望大家提出意见来,大家一起进步^_^以下为二分图的模板void init(){memset(link,-1,sizeof(link));//初始化链接的点为-1for(int i = 0;i < n;i ++)//是用vector存储图的点之间的关系的{pro[i].clear();}}bool can(int x)//寻找二分图的增广路{int len = pro[x].size();for(int i = 0;i < len;i ++){int t = pro[x].at(i);if(!vis[t]){vis[t] = 1;if(link[t] == -1 阅读全文
摘要:
代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <vector> 4 using namespace std; 5 6 struct node 7 { 8 char cc[7],dd[7]; 9 }cat[1000],dog[1000];10 11 vector<int> match[1000];12 int vis[1000];13 int link[1000];14 int n,m,k;15 16 bool can(int x)17 {18 int len = match[x 阅读全文
摘要:
代码如下: 1 #include <cstdio> 2 #include <cstring> 3 4 int n,m,k; 5 int g[110][110]; 6 int link[110]; 7 int a[10000],b[10000]; 8 int vis[110]; 9 10 bool can(int x)11 {12 for(int i = 1;i <= m;i ++)13 {14 if(g[x][i] && !vis[i])15 {16 vis[i] = 1;17 if(link[i... 阅读全文