hdu 1878 오로라 도로 물 문제.테스트 데이터 에 문제 가 있 는 것 같 습 니 다.

오 라 회 로
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10135    Accepted Submission(s): 3708
Problem Description
오 라 회 로 는 펜 이 지면 을 떠 나 지 못 하 게 그림 의 각 변 을 한 번 만 그 릴 수 있 고 출발점 으로 돌아 갈 수 있 는 회 로 를 말한다.이제 오 라 회 로 가 있 는 지 그림 을 정 해 주 시 겠 습 니까?
 
Input
테스트 입력 은 약간의 테스트 용례 를 포함한다.각 테스트 용례 의 첫 번 째 줄 은 두 개의 정수 로 노드 수 N (1 < N < 1000) 과 변수 M 을 제시한다.그 다음 에 M 줄 은 M 개의 변 에 대응 하고 각 줄 은 한 쌍 의 정 수 를 제시 하 는데 각각 이 변 이 직접 연 결 된 두 노드 의 번호 (노드 는 1 에서 N 번호) 이다.N 이 0 일 때 입력 매듭
다발
 
Output
모든 테스트 용례 의 출력 은 한 줄 을 차지 하고, 오로라 회로 가 존재 하면 1 을 출력 하고, 그렇지 않 으 면 0 을 출력 한다.
 
Sample Input

   
   
   
   
3 3 1 2 1 3 2 3 3 2 1 2 2 3 0

 
Sample Output

   
   
   
   
1 0

 
특히 많은 책 을 읽 었 는데 오 라 회 로 액 의 정의 에 대해 의문 이 들 었 다. 그림 에 고립 된 점 이 있 는데 이 점 을 제외 한 다른 점 이 오 라 회 로 를 만족 시 키 면 이 그림 은 오 라 회 로 가 존재 하지 않 을 까?이 고립 된 점 은 끝 이 없 기 때문에 다른 점 구조 가 오 라 회 로 를 구성 하 는 데 영향 을 주지 않 는 다.하지만 이 문 제 는 이런 상황 을 고려 할 필요 가 없다.데이터 물 인지 내 가 오 라 회 로 의 정의 에 대해 이해 하 는 데 문제 가 있 는 지 모르겠다.
코드:
#include <cstdio>
#include <cstring>
#include <queue>
#define SIZE 1010
using namespace std ;
bool graph[SIZE][SIZE] , vis[SIZE];
int degree[SIZE] ;
bool bfs(int pos ,int n)
{
	queue<int> que ;
	que.push(pos) ;
	while(!que.empty())
	{
		int tmp = que.front() ;
		que.pop() ;
		for(int i = 1 ; i <= n ; ++i)
		{
			if(!vis[i] && graph[tmp][i])
			{
				vis[i] = true ;
				que.push(i) ;
			}
		}
	}
	for(int i = 1 ; i <= n ; ++i)
	{
		if(!vis[i])
			return false ;
	}
	return true ;
}

int main()
{
	int n , m ;
	while(~scanf("%d",&n) && n)
	{
		scanf("%d",&m) ;
		memset(graph,false,sizeof(graph)) ;
		memset(degree,0,sizeof(degree)) ;
		for(int i = 0 ; i < m ; ++i)
		{
			int x , y ;
			scanf("%d%d",&x,&y);
			graph[x][y] = graph[y][x] = true ;
			degree[x]++ , degree[y]++ ;
		}
		bool flag = true  ;
		for(int i = 1 ; i <= n ; ++i)
		{
			if(degree[i]%2!=0)
			{
				flag = false ;
				break ;
			}
		}
		if(!flag)
			puts("0") ;
		else if(bfs(1,n))
		{
			puts("1") ;
		}
		else
			puts("0") ;
	}
	return 0 ;
}

그대 와 함께 격려 하 다

좋은 웹페이지 즐겨찾기