해설
Claim. 공격의 총 위력을 최대화하는 해 중, 다음 성질을 만족하는 것이 존재한다.
- 어떤 시각 가 존재해, 시각 에 공격할 수 있는 컴퓨터는 모두 시각 에 공격한다.
Proof. 어떠한 최적해에 대해, 그러한 가 존재하지 않는다고 가정하자. 가장 많은 수의 컴퓨터가 공격하는 시각 중 하나를 라 하자. 이때, 가정에 의해, 에 공격할 수 있지만 공격하지 않는 컴퓨터 가 있다. 해당 컴퓨터가 공격하는 시각을 라 하고, 시각 와 에 공격하는 컴퓨터의 수를 각각 와 라 하자.
이때, 컴퓨터 가 공격하는 시각을 로 바꾸면 더 나은 해가 됨을 보인다. 이 변화로 인해 생기는 공격의 총 위력의 변화량은
의 정의에 의해 이므로, 위 식의 값은 항상 양수이다. 따라서, 현재 해가 최적해라는 가정이 잘못되었고, 귀류법에 의해 원래 명제가 성립한다.
이제 위 성질과 동적 계획법을 이용해 문제를 해결한다. 를 다음과 같이 정의하자.
- : 공격할 수 있는 시각의 범위가 에 포함되는 컴퓨터만 고려했을 때, 총 공격 위력의 최댓값
위 성질은 어떤 에 대해 공격 시각 범위가 에 포함되는 컴퓨터들만 고려해도 성립한다. 따라서, 어떤 시각 를 골라, 해당 시각에 공격할 수 있는 모든 컴퓨터는 해당 시각에 공격하게 할 수 있다. 이를 이용하면, 다음과 같은 점화식을 세울 수 있다.
단, 일 때 으로 정의하며, 는 공격 시각이 에 포함되는 컴퓨터 중 시각 에 공격할 수 있는 컴퓨터의 수를 나타낸다. 따라서, 를 에 구할 수 있는 방법이 있다면, 위 풀이를 이용해 에 문제를 해결할 수 있을 것이다.
어떤 컴퓨터의 공격 시각 범위가 일 때, 해당 컴퓨터의 공격 시각이 에 포함되고, 시각 에 공격할 수 있을 조건은, 의 가정 아래 다음과 같이 생각할 수 있다.
위 두 조건이 모두 만족하는 경우에만 번 컴퓨터가 에 만큼의 기여를 할 것이다. 위 조건은 의 2차원 누적합을 통해 구할 수 있고, 이는 시간에 전처리해줄 수 있다. 따라서 문제를 에 해결할 수 있다.