rootsquare   2년 전

다음과 같은 논리로 문제를 풀어보았습니다.

이분그래프 판별법: 그래프의 모든 점을 두 가지 색으로 색칠하되, 임의의 이어진 두 정점의 색을 다르게 해서 칠할 수 있으면 이분그래프이다.

풀이 과정(한 테스트 케이스마다):

1. 정점과 간선의 개수를 입력받고, 간선들의 정보를 입력받아 lines와 V(벡터)에 넣는다.

2. 1번 정점부터 n번 정점에 대하여 다음과 같이 진행한다.

      2-1. k번째 정점이 색칠되어 있지 않은 경우, 다음을 진행한다.(색칠되어 있으면 이하 단계는 건너뛴다.)

      2-2. 2-1의 정점을 색1로 칠한다.

      2-3. BFS를 이용하여 현재 점과 연결된 점들을 모두 색칠한다. 색칠할 때는 현재 점과 이어진 점은 색을 다르게 칠한다.(원 점을 색1로 칠했으면 다음 점은 색2를 칠한다.) 만일 BFS를 진행하는 도중 이미 색이 칠해진 점을 만나면 그 방향으로는 더 이상 칠하지 않는다.

3. 색칠된 점들에 대하여, lines에 저장한 간선들을 하나씩 비교해 본다. 만일 모든 간선에 대하여 두 정점의 색이 다르면 YES, 그렇지 않으면 NO이다.


게시판의 반례는 모두 맞게 나오고,

https://www.acmicpc.net/board/... 이 글까지 확인해 보았지만 여전히 틀리고 있습니다.


혹시 반례나 풀이에서 제가 잘못 생각한 부분이 무엇이 있는지 알 수 있을까요?       

kipa00   2년 전

반례입니다.

rootsquare   2년 전

NO 다음에 개행문자(\n) 넣는 것을 깜빡하고 있었습니다.

해결했습니다 감사합니다!

댓글을 작성하려면 로그인해야 합니다.