博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1116(并查集+欧拉路判断)
阅读量:6647 次
发布时间:2019-06-25

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

题目链接:

思路:先合并,然后判断根结点是否唯一,如果是,则在判断是否是欧拉路;否则,直接结束。

View Code
1 #include
2 #include
3 #include
4 using namespace std; 5 const int MAXN=100000+10; 6 int In[MAXN],Out[MAXN]; 7 int parent[MAXN]; 8 bool mark[MAXN]; 9 int n;10 11 12 void Initiate(){13 for(int i=0;i
=0;s=parent[s]);21 while(s!=x){22 int tmp=parent[x];23 parent[x]=s;24 x=tmp;25 }26 return s;27 }28 29 void Union(int R1,int R2){30 int r1=Find(R1);31 int r2=Find(R2);32 if(r1!=r2){33 parent[r1]=r2;34 }35 }36 37 int main(){38 int _case;39 scanf("%d",&_case);40 while(_case--){41 scanf("%d",&n);42 Initiate();43 memset(mark,false,sizeof(mark));44 memset(In,0,sizeof(In));45 memset(Out,0,sizeof(Out));46 for(int i=0;i
1){63 printf("The door cannot be opened.\n");64 }else {65 int p[27];66 int k=0;67 for(int i=0;i<26;i++){68 if(mark[i]&&In[i]!=Out[i]){69 p[k++]=i;70 }71 }72 if(k==0){73 printf("Ordering is possible.\n");74 }else {75 if(k==2&&abs(In[p[0]]-Out[p[0]])==1&&abs(In[p[1]]-Out[p[1]])==1){76 printf("Ordering is possible.\n");77 }else 78 printf("The door cannot be opened.\n");79 }80 }81 }82 return 0;83 }

 

转载地址:http://tduto.baihongyu.com/

你可能感兴趣的文章
数组相关知识
查看>>
1设计模式---工厂模式。
查看>>
HDU-1573 X问题(中国剩余定理)
查看>>
UNIX环境高级编程——IPC总结
查看>>
UNIX网络编程——处理服务器中大量的TIME_WAIT
查看>>
添物不花钱学计算机及编程(预备篇) - 软件工程
查看>>
带状态论文粗读(三)[引用openstate的相关论文阅读]
查看>>
pcDuino无显示器刷机与使用
查看>>
程序员出路在何方
查看>>
linux-alias基本用法
查看>>
compose函数
查看>>
Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Services
查看>>
C# 6 与 .NET Core 1.0 高级编程 - 40 ASP.NET Core(上)
查看>>
(已解决)Xcode 运行cocos2dx弹出内部错误对话框(Internal Error)
查看>>
J2EE 13规范(2)-JNDI
查看>>
模板维护-模板测试
查看>>
django -- 对模式进行调式(pay with the api)
查看>>
SQL Server sp_configure 控制内存使用
查看>>
通读《构建之法》提出问题
查看>>
VB生成xml
查看>>