Logo
(追記) (追記ここまで)

시간초과 질문 드립니다.

23353번 - 승부 조작

방향과 위치정보를 가지고 방문 확인하는 개념으로 접근 해 봤는데 제 생각으론 그렇게까지 계산량이 많지 않을거라 생각했는데 아니었나보네요 ᅲᅲ

다른 방법은 잘 떠오르지 않아 질문 드립니다.

음. 풀어보고 왔는데 python으로는 쉽지 않네요 좌표를 움직이면서 풀면 시간초과가 뜰 확률이 있어 보입니다.

저는 그냥 6N-2 줄을 전부 검사해서 하나만 바꿨을 때 가장 긴 연속한 1의 개수가 몇 개인지 세는 방향으로 풀었습니다.

얘를 들어서, 예시 상황에 대해 6N-2줄은 다음과 같습니다.

+ dp로 푸는 풀이가 정해같기는 합니다.

1. 질문자님께서 생각하신 8방향 중 4방향만 탐색을 해도 됩니다.

2. visited를 체크 (visited[nr][nc][k] = 1) 하는 조건이 더 필요합니다. 작성하신 코드대로 visited를 체크하게 되면 고려하지 못하는 경우가 있습니다.

이 두 가지를 좀 더 생각해보시면 작성하신 코드에서 조금만 고치면 통과되긴 합니다. 위에 다른 분이 작성하신 답변대로 완전히 다른 방식을 생각해보셔도 됩니다.

감사합니다. 힌트 주신걸 기반으로 풀었습니다 ᅲᅲ!

참고로 제가 헤맸던 반례는 아래입니다.

8
0 1 2 1 1 2 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

ans : 5

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

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /