页面无法加载?点击这里可能会修复。
Placeholder

#10424

연쇄 반응 5s 1024MB

问题

와일리(Wile)는 사막에서 혼자 살기 때문에, 연쇄 반응(chain reaction)으로 작동하는 복잡한 기계를 만들며 스스로를 즐겁게 한다. 각 기계는 \mathbf{N}개의 모듈로 이루어져 있고, 각 모듈은 1, 2, \dots, \mathbf{N}으로 번호가 매겨져 있다. 각 모듈은 자신보다 번호가 작은 다른 모듈 하나를 가리킬 수도 있다. 그렇지 않다면 심연(the abyss)을 가리킨다.

어떤 모듈도 자신을 가리키지 않을 때, 그 모듈을 시동 모듈(initiator)이라고 한다. 와일리는 시동 모듈을 손으로 직접 작동시킬 수 있다. 모듈 하나가 작동되면, 그 모듈이 가리키는 모듈(있다면)을 작동시키고, 그 모듈이 또 다른 모듈을 가리키면 그것도 작동시키는 식으로 연쇄적으로 진행된다. 이 과정은 연쇄가 심연에 도달하거나, 이미 작동된 모듈에 도달하려는 순간에 멈춘다. 이것을 연쇄 반응(chain reaction)이라고 한다.

\mathbf{N}개의 각 모듈에는 재미 지수(fun factor) \mathbf{F_i}가 있다. 연쇄 반응 하나에서 와일리가 얻는 재미는, 그 연쇄 반응에서 작동된 모든 모듈의 재미 지수 중 최댓값이다. 와일리는 모든 시동 모듈을 각각 한 번씩, 어떤 순서로든 손으로 작동시킬 것이다. 전체 세션에서 와일리가 얻는 총 재미는 각 연쇄 반응에서 얻는 재미를 모두 더한 값이다.

예를 들어 모듈이 4개이고 재미 지수가 \mathbf{F_1}=60, \mathbf{F_2}=20, \mathbf{F_3}=40, \mathbf{F_4}=50라고 하자. 또한 모듈 1은 심연을 가리키고, 모듈 23은 모듈 1을 가리키며, 모듈 4는 모듈 2를 가리킨다고 하자. 이때 시동 모듈은 34 두 개이며, 와일리는 이 둘을 어떤 순서로든 작동시켜야 한다.

Example in statement when activating 4 then 3.

위에서 보듯, 만약 와일리가 모듈 4를 먼저 작동시키면 모듈 4, 2, 1이 같은 연쇄 반응에서 작동되고, 이때 얻는 재미는 \max(50, 20, 60) = 60이다. 그 다음 와일리가 모듈 3을 작동시키면, 모듈 3만 단독으로 작동된다(모듈 1은 다시 작동될 수 없다). 이때 얻는 재미는 40이므로, 세션의 총 재미는 60+40=100이다.

Example in statement when activating 3 then 4.

하지만 와일리가 모듈 3을 먼저 작동시키면, 모듈 31이 같은 연쇄 반응에서 작동되어 얻는 재미는 \max(40, 60) = 60이다. 그 다음 와일리가 모듈 4를 작동시키면, 모듈 42가 같은 연쇄 반응에서 작동되어 얻는 재미는 \max(50, 20) = 50이고, 세션의 총 재미는 60+50=110이다.

모듈들의 재미 지수와 연결 구조가 주어질 때, 시동 모듈들을 최적의 순서로 손으로 작동시켜 얻을 수 있는 총 재미의 최댓값을 구하라.


输入

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. \mathbf{T}개의 테스트 케이스가 이어지며, 각 테스트 케이스는 3줄로 주어진다. 각 테스트 케이스의 첫 줄에는 정수 \mathbf{N}이 주어지며, 이는 와일리가 가진 모듈의 개수이다. 둘째 줄에는 \mathbf{N}개의 정수 \mathbf{F_1}, \mathbf{F_2}, \dots, \mathbf{F_N}이 주어지며, \mathbf{F_i}는 i번째 모듈의 재미 지수이다. 셋째 줄에는 \mathbf{N}개의 정수 \mathbf{P_1}, \mathbf{P_2}, \dots \mathbf{P_N}이 주어진다. \mathbf{P_i}=0이면 i번째 모듈이 심연을 가리킨다는 뜻이고, 그렇지 않다면 i번째 모듈은 모듈 \mathbf{P_i}를 가리킨다.


输出

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이고, y는 시동 모듈들을 최적의 순서로 손으로 작동시켜 얻을 수 있는 총 재미의 최댓값이다.


示例

3
4
60 20 40 50
0 1 1 2
5
3 2 1 4 5
0 1 1 1 0
8
100 100 100 90 80 100 90 100
0 1 2 1 2 3 1 3
Case #1: 110
Case #2: 14
Case #3: 490
샘플 케이스 #1은 문제 설명에 나온 경우이다. 샘플 케이스 #2에서는 개시자(모듈 2~5)가 4개이므로 연쇄 반응도 4개다. 이를 3, 5, 4, 2 순서로 활성화하면 fun이 3, 5, 4, 2인 연쇄가 되어 총 fun은 14가 된다. 입력에서 가장 큰 fun 값 네 개를 합산하고 있으므로 이것보다 큰 값을 만들 수 없음을 유의하라. 샘플 케이스 #3에서 5개의 개시자를 활성화하는 최적 순서는 4, 5, 7, 6, 8이다.

来源

GCJ 2022qr D

需要登录才能编写代码。