DOJ logoDOJ
Problems
Recently added problemsSaved problems
CategoriesDLCContestsGroupsTeamsBoard
Ranking
Solved Problem RankingStreak rankingDOJ Power ranking
Status
Call for TasksLoginRegister
DOJ logoDOJ

Community online judge with OI-style subtask scoring, Elo ratings, and Discord-backed certification.

Problems
ProblemsCategories
Community
ContestsRankingBoardNoticesHost an external contestGuide
Account
LoginRegisterJudge Status
Policy
Terms of ServiceDLC RulesPrivacyAPI documentationLanguage runtimesContest rank rewardsRating and performance
© 2026 DOJ
All rights reserved
Editorial

디도스

Back to problem

Editorial

Claim. 공격의 총 위력을 최대화하는 해 중, 다음 성질을 만족하는 것이 존재한다.

  • 어떤 시각 t∈{1,2,…,k}t \in \{1, 2, \dots, k\}t∈{1,2,…,k}가 존재해, 시각 ttt에 공격할 수 있는 컴퓨터는 모두 시각 ttt에 공격한다.

Proof. 어떠한 최적해에 대해, 그러한 ttt가 존재하지 않는다고 가정하자. 가장 많은 수의 컴퓨터가 공격하는 시각 중 하나를 tmaxt_{max}tmax​라 하자. 이때, 가정에 의해, tmaxt_{max}tmax​에 공격할 수 있지만 공격하지 않는 컴퓨터 가 있다. 해당 컴퓨터가 공격하는 시각을 라 하고, 시각 와 에 공격하는 컴퓨터의 수를 각각 와 라 하자.

이때, 컴퓨터 xxx가 공격하는 시각을 tmaxt_{max}tmax​로 바꾸면 더 나은 해가 됨을 보인다. 이 변화로 인해 생기는 공격의 총 위력의 변화량은

((cmax+1)2+(cx−1)2)−(cmax2+cx2)=2(cmax−cx)+2\begin{aligned} \left((c_{max}+1)^2+(c_x-1)^2 \right) - (c_{max}^2 + c_x^2) = 2(c_{max} - c_x) + 2 \end{aligned}((cmax

tmaxt_{max}tmax​의 정의에 의해 cmax≥cxc_{max} \ge c_xcmax​≥c이므로, 위 식의 값은 항상 양수이다. 따라서, 현재 해가 최적해라는 가정이 잘못되었고, 귀류법에 의해 원래 명제가 성립한다.

이제 위 성질과 동적 계획법을 이용해 문제를 해결한다. DDD를 다음과 같이 정의하자.

  • D[l][r]D[l][r]D[l][r]: 공격할 수 있는 시각의 범위가 [l,r][l, r][l,r]에 포함되는 컴퓨터만 고려했을 때, 총 공격 위력의 최댓값

위 성질은 어떤 [l,r][l, r][l,r]에 대해 공격 시각 범위가 [l,r][l, r][l,r]에 포함되는 컴퓨터들만 고려해도 성립한다. 따라서, 어떤 시각 ttt를 골라, 해당 시각에 공격할 수 있는 모든 컴퓨터는 해당 시각에 공격하게 할 수 있다. 이를 이용하면, 다음과 같은 점화식을 세울 수 있다.

DP[l][r]=max⁡l≤t≤r(DP[l][t−1]+f(l,r,t)2+DP[t+1][r])DP[l][r] = \max_{l \le t \le r} \left( DP[l][t-1] + f(l, r, t)^2 + DP[t+1][r] \right)DP[l][r]=l≤t≤

단, l>rl > rl>r일 때 DP[l][r]=0DP[l][r] = 0DP[l][r]=0으로 정의하며, f(l,r,t)f(l, r, t)f(l,r는 공격 시각이 에 포함되는 컴퓨터 중 시각 에 공격할 수 있는 컴퓨터의 수를 나타낸다. 따라서, 를 에 구할 수 있는 방법이 있다면, 위 풀이를 이용해 에 문제를 해결할 수 있을 것이다.

어떤 컴퓨터의 공격 시각 범위가 [li,ri][l_i, r_i][li​,ri​]일 때, 해당 컴퓨터의 공격 시각이 [l,r][l, r][l,r]에 포함되고, 시각 에 공격할 수 있을 조건은, 의 가정 아래 다음과 같이 생각할 수 있다.

  • l≤li≤tl \le l_i \le tl≤li​≤t
  • t≤ri≤rt \le r_i \le rt≤r

위 두 조건이 모두 만족하는 경우에만 iii번 컴퓨터가 f(l,r,t)f(l, r, t)f(l,r,t)에 111만큼의 기여를 할 것이다. 위 조건은 (li,ri)(l_i, r_i)(l의 2차원 누적합을 통해 구할 수 있고, 이는 시간에 전처리해줄 수 있다. 따라서 문제를 에 해결할 수 있다.

xxx
txt_xtx​
tmaxt_{max}tmax​
txt_xtx​
cmaxc_{max}cmax​
cxc_xcx​
​
+
1
)2
+
(
cx​
−
1
)2
)
−
(
cmax2​
+
cx2​
)
=
2
(
cmax​
−
cx​
)
+
2
​
x
​
r
max
​
(DP[l][t−1]+f(l,r,t)2+DP[t+1][r])
,
t
)
[l,r][l, r][l,r]
ttt
f(l,r,t)f(l, r, t)f(l,r,t)
O(1)O(1)O(1)
O(k3)O(k^3)O(k3)
tt
t
l≤t≤rl \le t \le rl≤t≤r
i
​
≤
r
i
​
,
ri​
)
O(n+k2)O(n+k^2)O(n+k2)
O(n+k3)O(n+k^3)O(n+k3)