gustjr1259   4년 전

시간초과가 계속 발생해서 다른분들 코드도 참고해서 수정해봤는데 계속 시간초과가 납니다.

M개를 조합으로 뽑고 bfs를 하는 부분은 동일한 것 같은데 어느 부분에서 시간초과가 나는지 모르겠습니다.

알려주시면 감사하겠습니다!! 

rhdqor213   4년 전

78번째 줄 for 문의 조건문을 잘 생각해보세요. i가 virus.size()까지 돌지 않아도 됩니다.

또한 이 반례를 생각해보세요. https://www.acmicpc.net/board/view/36342

robin00q   4년 전

74~76번째 줄을 while문 안에서 사용한다면 조금 더 효율을 높일 수 있을 것 같아요

또한 while문 안에서 현재 if(answer <= total) 인 경우 바로 bfs를 종료해서 pruning을 한다면 좋을 것같아요


그리고 

64, 65번째 줄에서

if (map[ny][nx]==1||map[ny][nx]==2)
continue;

로 하셨는데

문제를 읽어보면 활성 바이러스가 비활성 바이러스를 만난 경우 비활성바이러스를 활성으로 바꾸라는 부분이 있어서 틀리신 것일 수도 있을 것 같네요

문제를 한번 더 자세히 읽어보시면 좋을 것 같아요

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