hdu5423 Rikka with Tree(DFS)
来源:互联网 发布:linux spi驱动移植 编辑:程序博客网 时间:2024/06/07 06:59
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5423
题目大意:BC round# 53上有中文题意= =
思路:画图可以发现,其实题目本身不难。因为他有n个点,n条边,所以可以确定只有一棵树。
对于树中的某一个点来说,如果他有多个分支,然后分支下面又有边连出去,那么这种情况就一定是NO了。
比如1和2、3相连,然后2又与4相连,3与5相连,那么4和5就可以调换位置,此时这颗树就不是特殊的了。
所以我可以利用深搜记录下所有点的深度,对深度排序以后,如果有一种深度超过2个及以上,就看是否有比他深的点,如果有就是NO,否则是YES。
#include<stdio.h>#include<string.h>#include<algorithm>#define M 1005using namespace std;struct node{int to,next;}edge[M*100];int head[M*2];int n,tot,ans[1005],q,vis[1005];void add(int a,int b){edge[tot].to=b;edge[tot].next=head[a];head[a]=tot++;}int t=0;void dfs(int x,int deep){int i,j;vis[x]=1;for(i=head[x];i!=-1;i=edge[i].next){j=edge[i].to;if(vis[j])continue;vis[j]=1;dfs(j,deep+1);}ans[q++]=deep;return;}int main(){ int i,j,u,v; while(scanf("%d",&n)!=EOF) { q=0; memset(vis,0,sizeof(vis)); memset(head,-1,sizeof(head)); tot=0; for(i=1;i<n;i++) { scanf("%d%d",&u,&v); add(u,v); add(v,u); //建树 } int deep=0,f; f=0;dfs(1,0);int as=0,mark=0;sort(ans,ans+q-1);for(i=1;i<q-1;i++){if(ans[i]==ans[i-1]){mark=1; as=ans[i];} //判断是否有两个一样的深度。即判断是否有分支。 if(ans[i]>as&&mark)f=1; //在分支下如果还有点,就是NO了。 } if(f)printf("NO\n"); else printf("YES\n"); } return 0;}
0 0
- hdu5423 Rikka with Tree(DFS)
- HDU5423 Rikka with Tree(树,深搜DFS)
- HDU5423 Rikka with Tree
- hdu5423 Rikka with Tree
- hdu 5423 Rikka with Tree(dfs)
- HDU 5423 Rikka with Tree(DFS)
- Rikka with Tree(DFS+树的性质)
- hdu 5423 Rikka with Tree DFS
- HDU 5423 Rikka with Tree(简单DFS+枚举)
- hdu 5423 Rikka with Tree DFS 或最短路
- HDU - 5202 - Rikka with string (DFS)
- HDU 5423 Rikka with Tree(构造)
- hdu 5423 Rikka with Tree(深搜)
- hdu 5423 Rikka with Tree(水)
- hdu 5423 Rikka with Tree(思路)
- hdu54235423 Rikka with Tree
- Rikka with Tree HDU
- Rikka with Tree
- 整人
- [Android随笔]BroadcastReceiver广播机制
- Android APK调用mongoose
- WAMPServer集成环境安装
- ContentProvider的自定义及SMS和CONTACTS的内容提供者
- hdu5423 Rikka with Tree(DFS)
- DataStructure-8.3-散列表的查找技术
- zoj3811 Untrusted Patrol bfs
- Opencv多通道图像混合
- 在matlab下测试libsvm工具箱
- Android studio配置使用GreenDao
- 从DT到Random Forest、GBDT
- Opencv多通道图像混合-滚动条
- 洛谷1613跑路(倍增)