小希的迷宫
[cpp]
// File Name: hdu1272.cpp
// Author: rudolf
// Created Time: 2013年04月27日 星期六 13时32分01秒
#include
#include
#include
// File Name: hdu1272.cpp
// Author: rudolf
// Created Time: 2013年04月27日 星期六 13时32分01秒
#include
#include
#include
using namespace std;
const int maxn=100005;
int fa[maxn],hav[maxn];
int flag;
int find( int x )
{
// return fa[ x ] = x == fa[ x ] x :find( fa[ x ] );
while( x != fa[ x ])
x = fa[ x ];
return x;
}
void merge( int x1 ,int x2 )
{
int x = find( x1 );
int y = find( x2 );
if( x != y )
fa[ x ] = y;
else
flag = 0;//同父节点,成环
}
int main()
{
int i,m,n;
while(cin>>m>>n)
{
if( m == -1 && n == -1 )
break;
if( m==0 && n==0 )
{
cout<<"Yes"< continue;
}
for( i = 1; i < maxn; i++ )
{
fa[ i ] = i;
hav[i]=0;
}
hav[ m ] = hav[ n ] = 1;
flag = 1;
merge( m , n );
while( cin >> m >> n )
{
if( m == 0 && n == 0)
break;
merge( m , n );
hav[ m ] = hav[ n ] = 1;
}
int ans = 0;
for( i = 1;i < maxn; i++)
{
if( hav[ i ] && fa[ i ] == i )//判断根节点k数目
ans ++;
if( ans > 1 )
flag=0;
}
if( flag )
cout<<"Yes"< else
cout<<"No"< }
return 0;
}
这个是下面的代码提交,深表无语。。。。。。。。。。。。。。。。。。。。。。。。。
[cpp]
// File Name: hdu1272.cpp
// Author: rudolf
// Created Time: 2013年04月27日 星期六 13时32分01秒
#include
#include
#include