만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

더 어려운 퍼즐

시간 제한2초메모리 제한512 MB

요약
각 플랫폼 i는 i+1부터 i+a_i까지 이동할 수 있습니다. 1번에서 n번까지 가는 경로가 하나만 남도록 바꿀 a_i의 최소 개수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

Gildong은 퍼즐 게임을 만들고 있다. 퍼즐에는 1번부터 nn번까지 번호가 붙은 nn개의 발판이 있다. 플레이어는 캐릭터를 발판 위에 세워 조종하고, 목표는 캐릭터를 1번 발판에서 nn번 발판까지 옮기는 것이다.

ii번 발판에는 정수 aia_i가 적혀 있다 (0≤ai≤n−i0\le a_i\le n-i). 캐릭터가 ii번 발판에 있으면 플레이어는 i+1≤j≤i+aii+1\le j\le i+a_i를 만족하는 jj번 발판 중 아무 곳으로나 캐릭터를 옮길 수 있다. 캐릭터가 ai=0a_i=0인 ii번 발판에 있고 i≠ni\ne n이면 플레이어는 게임에서 진다.

Gildong은 게임을 더 어렵게 만들려고 한다. 일부 값 (하나도 바꾸지 않을 수도 있다)을 00으로 바꿔서 이기는 방법이 정확히 하나만 남게 하려고 한다. 바꾸는 값은 최대한 적어야 한다. 두 방법이 서로 다르다는 것은 한 방법에서는 캐릭터가 도달하지만 다른 방법에서는 도달하지 않는 발판이 있다는 뜻이다. 00으로 바꿔야 하는 값의 최소 개수를 구하라.

입력

첫 줄에 테스트 케이스의 수 tt (1≤t≤5001\le t\le 500)가 주어진다.

각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 nn (2≤n≤30002\le n\le 3000)이 주어지고, 둘째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai≤n−i0\le a_i\le n-i)이 주어진다.

각 테스트 케이스에서 처음부터 이기는 방법이 적어도 하나 있다. 모든 테스트 케이스의 nn을 합하면 30003000을 넘지 않는다.

출력

각 테스트 케이스마다 이기는 방법이 정확히 하나만 남도록 00으로 바꿔야 하는 값의 최소 개수를 한 줄에 하나씩 출력한다.

힌트

첫 번째 경우, 플레이어는 4번 발판에 도착할 때까지 다음 발판으로만 이동할 수 있다. 이미 이기는 방법이 하나뿐이므로 답은 00이다.

두 번째 경우, Gildong은 a2a_2, a3a_3, a4a_4를 00으로 바꿔서 게임을 4 0 0 0 04\ 0\ 0\ 0\ 0으로 만들 수 있다. 이제 이기는 방법은 1번 발판에서 5번 발판으로 바로 이동하는 것뿐이다.

세 번째 경우, Gildong은 a2a_2와 a8a_8을 00으로 바꿀 수 있다. 그러면 이기는 방법은 1→3→7→91 \to 3 \to 7 \to 9 순서로 이동하는 것뿐이다.

예제1

  1. 예제 1

    입력
    3
    4
    1 1 1 0
    5
    4 3 2 1 0
    9
    4 1 4 2 1 0 2 1 0
    
    예상 출력
    0
    3
    2