企业网站管理规定,做外汇最好的财经网站,厦门市同安区建设局公开网站,自建网站平台可以实现哪些功能// 判断图是否联通 在连通的基础上还要判断是否存在欧拉通路// 判断连通就并查集了 判断是否存在欧拉通路#xff1a; 点度数为数的点 1 3就是不存在的 其它是存在的// 我开始用 map 判重 然后就悲剧了一上午 好久没写 Trie树了 都忘了、#include iostream
#in… // 判断图是否联通 在连通的基础上还要判断是否存在欧拉通路// 判断连通就并查集了 判断是否存在欧拉通路 点度数为数的点 1 3就是不存在的 其它是存在的// 我开始用 map 判重 然后就悲剧了一上午 好久没写 Trie树了 都忘了、#include iostream
#include string
#include map
#include algorithm
#include queue
#include math.h
#include stdio.h
#include string.h
#include vector
using namespace std;
#define MOD 1000000007
#define maxn 500100
char s1[20],s2[20];
int d[maxn];//,out[maxn];
int f[maxn],num[maxn];
int Fin(int x){if(x!f[x])f[x]Fin(f[x]);return f[x];
}
int sz;
int ch[maxn][26];
int val[maxn];
int idx(char c){ return c-a;}
void insert(char *s,int v){int u0;//,lenstrlen(s);int c;for(int i0;s[i]!\0;i){cidx(s[i]);if(!ch[u][c]){memset(ch[sz],0,sizeof(ch[sz]));val[sz]0;ch[u][c]sz;}uch[u][c];}// printf(%d-,v);val[u]v;
}
int search(char *s){int u0;//,lenstrlen(s);int c;for(int i0;s[i]!\0;i){cidx(s[i]);// printf(c%c,s[i]);if(!ch[u][c])return 0;uch[u][c];}return val[u];
}
int main(){int i;int n0;int u,v;for(i1;imaxn;i)f[i]i,num[i]1,d[i]0;sz1;memset(ch[0],0,sizeof(ch[0]));while(scanf(%s %s,s1,s2)!EOF){if(usearch(s1)){d[u];}else{insert(s1,n);un;d[u];}if(vsearch(s2)){d[v];}else{insert(s2,n);vn;d[v];}//printf(%d %d\n,u,v);uFin(u);vFin(v);if(u!v){if(num[u]num[v]){f[v]u;num[u]num[v];}else{f[u]v;num[v]num[u];}}}int bf;bf0;for(i1;in;i)if(d[i]%2) bf;if(bf1||bf2){ printf(Impossible\n);return 0;}bfFin(1);for(i2;in;i)if(bf!Fin(i)){printf(Impossible\n);return 0;}printf(Possible\n);return 0;
} 转载于:https://www.cnblogs.com/372465774y/p/3200134.html