博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一本通】欧拉回路
阅读量:4594 次
发布时间:2019-06-09

本文共 3182 字,大约阅读时间需要 10 分钟。

欧拉回路

1 #include
2 using namespace std; 3 const int N=1e5+5,M=4e5+5; 4 int t,n,m,tot,in[N],ou[N],ans[M]; 5 int cnt,fro[N],to[M],nxt[M]; 6 bool vis[M]; 7 void add(int x,int y) { 8 to[++cnt]=y,nxt[cnt]=fro[x]; fro[x]=cnt; 9 in[y]++,ou[x]++;10 }11 12 void DFS(int x) {13 for(int &i=fro[x];i;i=nxt[i]) {14 int h=i;15 if(t==1) {16 int k=(i+1)>>1;17 if(!vis[k]) {18 vis[k]=1; DFS(to[i]);19 if(h&1) ans[++tot]=k; else ans[++tot]=-k;20 }21 }22 else if(!vis[i]) {23 vis[i]=1; DFS(to[i]);24 ans[++tot]=h;25 }26 } 27 }28 29 int main() {30 t=read();31 n=read(),m=read();32 for(int i=1;i<=m;i++) {33 int u=read(),v=read();34 add(u,v); if(t==1) add(v,u);35 }36 if(t==1) for(int i=1;i<=n;i++) if(in[i]&1) return printf("NO"),0; 37 if(t==2) for(int i=1;i<=n;i++) if(in[i]^ou[i]) return printf("NO"),0;38 DFS(to[1]);39 if(tot

 

单词游戏

1 #include
2 using namespace std; 3 int T,n,Father,in[30],out[30],fa[30]; 4 bool flag,s,t; 5 char a[1005]; 6 7 int num(char c) {
return c-'a'+1;} 8 int getfa(int x) {
return fa[x]==x?x:fa[x]=getfa(fa[x]);} 9 void ready() {10 flag=s=t=false; Father=0;11 for(int i=1;i<=26;i++) fa[i]=i;12 memset(in,0,sizeof(in));13 memset(out,0,sizeof(out));14 }15 16 int main() {17 scanf("%d",&T);18 while(T--) {19 ready();20 scanf("%d",&n);21 for(int i=1;i<=n;i++) {22 scanf("%s",a+1);23 int len=strlen(a+1);24 out[num(a[1])]++,in[num(a[len])]++;25 fa[getfa(num(a[1]))]=getfa(num(a[len]));26 }27 for(int i=1;i<=26;i++) {28 if(in[i]==out[i]) continue;29 else if(in[i]+1==out[i]&&!s) s=true;30 else if(in[i]==out[i]+1&&!t) t=true;31 else {flag=true; break;}32 }33 for(int i=1;i<=26;i++)34 if(in[i]||out[i]) {35 if(!Father) Father=getfa(i);36 else if(Father^getfa(i)) {flag=true; break;}37 }38 if(flag) printf("The door cannot be opened.\n");39 else printf("Ordering is possible.\n");40 }41 }

 

Ant Trip

1 #include
2 using namespace std; 3 const int N=1e5+5; 4 int n,m,ans,d[N],fa[N],s[N]; 5 bool vis[N]; 6 vector
v; 7 8 int getfa(int x) {
return fa[x]==x?x:fa[x]=getfa(fa[x]);} 9 void ready() {10 ans=0;11 v.clear();12 memset(d,0,sizeof(d));13 memset(vis,0,sizeof(vis));14 memset(s,0,sizeof(s));15 for(int i=1;i<=n;i++) fa[i]=i;16 }17 18 int main() {19 while(~scanf("%d%d",&n,&m)) {20 ready();21 for(int i=1;i<=m;i++) {22 int a=read(),b=read();23 d[a]++,d[b]++;24 fa[getfa(a)]=getfa(b);25 }26 for(int i=1;i<=n;i++) {27 int x=getfa(i);28 if(!vis[x]) {29 v.push_back(x);30 vis[x]=1;31 }32 if(d[i]&1) s[x]++;33 }34 for(int i=0;i

 

转载于:https://www.cnblogs.com/qq8260573/p/10610527.html

你可能感兴趣的文章
JS 正则匹配字符串
查看>>
Safe Area Layout Guide before iOS 9.0
查看>>
Machine learning - Introduction to Gaussian processes 学习记录
查看>>
[Computer Networking] {CMU14-740} Lecture 7: Peer to Peer Networking
查看>>
【转】马士兵_JAVA自学之路
查看>>
KTV项目总结
查看>>
Java序列化与反序列化
查看>>
windows eclipse IDE打开当前类所在文件路径
查看>>
memcache服务器端参数说明
查看>>
java动态生成验证码
查看>>
SQL SERVER 查询性能优化——分析事务与锁(一)
查看>>
WCF学习之旅—请求与答复模式和单向模式(十九)
查看>>
oracle权限
查看>>
Python 教程阅读笔记(十):标准库一瞥(续)
查看>>
[转] 演示Flash Text Engine(FTE) 的baseline相关属性
查看>>
Java - 35 Java 实例
查看>>
为Liferay开发应用程序
查看>>
安卓绘图引擎
查看>>
写一篇 Bootstrap弹窗确认的文章。本周完成
查看>>
【转】Sublime text 3 中文文件名显示方框怎么解决
查看>>