아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

달리기 경로

시간 제한12초메모리 제한1024 MB

요약
볼록 n각형의 현들이 주어질 때, 끝점을 포함해 서로 만나지 않는 현들의 최대 개수를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 구간, 기하, 구현
정답자
아직 제출이 없습니다

문제

Polygonal School의 운영진은 신입생을 늘리려 하지만, 체육관이 더 많은 학생을 감당할 수 있을지 확신이 없다. 평범하고 지루한 직사각형 체육관과 달리, Polygonal의 체육관 바닥은 정nn각형이다! 이들은 이 다각형을 애정을 담아 PP라고 부른다.

코치는 체육관 바닥에 여러 달리기 경로를 그렸다. 각 달리기 경로는 PP의 서로 다른 두 꼭짓점을 잇는 선분이다. 체육 시간에 코치는 학생마다 서로 다른 달리기 경로를 하나씩 배정하고, 학생은 수업이 끝날 때까지 배정받은 경로를 왕복하며 달린다. 코치는 학생들이 부딪히는 것을 원하지 않으므로, 각 학생의 경로는 다른 학생의 경로와 만나지 않아야 한다. 두 경로가 공통된 점을 하나라도 가지면(끝점도 포함) 두 경로는 만난다.

PP에 그려진 달리기 경로가 주어질 때, 체육 시간에 동시에 달릴 수 있는 학생 수의 최댓값을 구하시오.

그림 H.1: 두 예제 입력을 나타낸 그림으로, 가능한 해답을 굵은 빨간 선으로 표시했다. 실선 검은 선은 학생에게 배정되지 않은 달리기 경로이고, 점선 검은 선은 달리기 경로가 없는 곳에서 PP의 경계를 나타낸다.

입력

첫째 줄에 PP의 꼭짓점 개수 nn이 주어진다. (3≤n≤5003 \le n \le 500) 꼭짓점은 PP를 따라 증가하는 순서로 번호가 매겨진다. 이어서 nn개의 줄에 각각 nn개의 정수가 주어지며, 이는 n×nn \times n 대칭 이진 행렬 MM을 나타낸다. ii번째 줄의 jj번째 정수 MijM_{ij}는 다각형의 꼭짓점 ii와 jj 사이에 달리기 경로가 있으면 1, 없으면 0이다. 모든 1≤i,j≤n1 \le i, j \le n에 대해 Mij=MjiM_{ij} = M_{ji}이고 Mii=0M_{ii} = 0임이 보장된다.

출력

위 조건에서 달리기 경로를 따라 동시에 달리도록 배정할 수 있는 학생 수의 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    3
    0 1 1
    1 0 1
    1 1 0
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6
    0 0 0 1 0 0
    0 0 0 0 1 1
    0 0 0 0 1 1
    1 0 0 0 0 0
    0 1 1 0 0 0
    0 1 1 0 0 0
    
    예상 출력
    2