약수 축소 비용을 내고 수를 줄이거나 행운 수에 머물며 A에서 B까지 정확히 정해진 이동 횟수로 도달하는 최소 비용을 구합니다.
어려움9동적 계획법최단 경로정수론그래프아직 제출이 없습니다시간 제한2초메모리 제한256 MB어린 카를 프리드리히 가우스가 수업 시간에 가만히 있지 않자, 선생님은 그를 붙잡아 둘 과제를 하나 만들었다.
선생님은 양의 정수 수열 F(1),F(2),…,F(K)를 정하고, t>K인 모든 t에 대해 F(t)=0으로 둔다. 행운의 수 집합도 함께 정한다. X가 행운의 수이면 그 가격을 C(X)로 쓴다.
처음에 칠판에는 양의 정수 A가 적혀 있다. 가우스는 한 번의 이동마다 다음 둘 중 하나를 한다.
가우스는 정확히 L번 이동해야 하고, 마지막 이동을 마친 뒤 칠판에는 B가 적혀 있어야 한다. 이렇게 이동하는 방법의 최소 가격을 G(A,B,L)이라 하자. 정확히 L번 이동해서는 조건을 만족할 수 없으면 G(A,B,L)=−1로 정의한다.
선생님은 가우스에게 질의를 Q개 준다. 각 질의는 수 A와 B를 주며, 그 답은 G(A,B,L1)+G(A,B,L2)+⋯+G(A,B,LM)이다. 수 L1,…,LM은 모든 질의에서 같다.
첫째 줄에 정수 K가 주어진다 (1≤K≤10000).
둘째 줄에 정수 F(1),F(2),…,F(K)가 주어지며, 각각 1 이상 1000 이하다.
셋째 줄에 정수 M이 주어진다 (1≤M≤1000).
넷째 줄에 정수 L1,L2,…,LM이 주어지며, 각각 1 이상 10000 이하다.
다섯째 줄에 행운의 수의 개수 T가 주어진다 (1≤T≤50).
다음 T개 줄에는 각각 두 정수 X와 C(X)가 주어진다. X는 행운의 수이고 C(X)는 그 가격이다 (1≤X≤106, 1≤C(X)≤1000). 같은 행운의 수는 두 번 나오지 않는다.
그다음 줄에 정수 Q가 주어진다 (1≤Q≤50000).
다음 Q개 줄에는 각각 두 정수 A와 B가 주어진다 (1≤A,B≤106).
Q개 줄을 출력한다. i번째 줄에는 i번째 질의의 답을 출력한다.
K=4이고 F(1)=F(2)=F(3)=F(4)=1, 행운의 수는 2와 4로 C(2)=5, C(4)=10, L1=1, L2=2, 질의는 A=4, B=2인 경우를 보자.
L1=1이면 이동이 한 번뿐이므로 4를 2로 바꾸고 F(d(4/2))=F(2)=1을 낸다. 따라서 G(4,2,1)=1이다.
L2=2이면 방법이 두 가지다.
첫 번째가 더 싸므로 G(4,2,2)=6이고, 질의의 답은 1+6=7이다.