#P12932. [NOISG 2020 Prelim] Visiting Singapore

    ID: 12693 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>2020NOISG(新加坡)

[NOISG 2020 Prelim] Visiting Singapore

题目描述

新加坡每天都会举办一场活动,记 Σ={1,2,,K}Σ = \{1, 2, \ldots, K\} 表示所有可能的活动集合。参加第 ii 个活动可以让你的幸福值增加 V[i]V[i]

假设连续 nn 天内举办的活动依次为 S[1],S[2],,S[n]S[1], S[2], \ldots, S[n](同一活动可能多次出现)。

你想依次参加 mm 个指定活动 T[1],T[2],,T[m]T[1], T[2], \ldots, T[m](同样可能重复)。因此,你计划选择某一天飞往新加坡,第 ii 天到达,第 jj 天离开。你也可以选择不去新加坡。

在新加坡停留期间,你尝试依次完成 T[1]T[1]T[m]T[m] 的活动:

  • 成功参加第 T[i]T[i] 个活动,幸福值增加 V[T[i]]V[T[i]]
  • 若跳过连续的 T[p]T[p]T[q]T[q],幸福值减少 A+(qp+1)BA + (q - p + 1)B
  • 此外,在新加坡期间,若连续 dd 天未参加任何活动,幸福值减少 A+dBA + dB。更具体地说,若你仅在第 pp 天和第 qq 天参加了活动,且 qp+2q \geq p + 2,中间未参加任何活动,幸福值减少 A+(qp1)BA + (q - p - 1)B

你想最大化自己的幸福值。请计算最大可能的幸福值。

输入格式

第一行包含五个整数 K,n,m,A,BK, n, m, A, B,含义如下:

  • KK:活动种类数;
  • nn:总天数;
  • mm:目标活动数量;
  • A,BA, B:负数,分别表示跳过惩罚参数。

第二行包含 KK 个正整数,第 ii 个整数表示第 ii 个活动带来的幸福值 V[i]V[i]

第三行包含 nn 个整数,第 ii 个整数 S[i]S[i] 表示第 ii 天举办的活动,范围 1K1 \sim K

第四行包含 mm 个整数,第 ii 个整数 T[i]T[i] 表示你计划依次参加的活动,范围 1K1 \sim K

输出格式

输出一行,表示在最优安排下可以获得的最大幸福值。

1 5 3 -5 -4
10
1 1 1 1 1
1 1 1
30
1 3 5 -10 -5
10
1 1 1
1 1 1 1 1
10
4 7 4 0 0
1 2 3 4
3 1 2 1 4 1 1
1 2 3 4
7
4 8 4 0 -3
1 2 3 4
3 1 2 1 1 4 1 1
1 2 3 4
-1
4 8 4 -3 0
1 2 3 4
3 1 2 1 1 4 1 1
1 2 3 4
2
6 10 6 -2 -1
1 2 3 4 5 6
3 1 5 2 6 1 5 1 1 4
1 2 3 4 5 6
4

提示

【样例解释】

对于样例 #1:

在这个例子中,K=1, n=5, m=3, A=5, B=4K = 1,\ n = 5,\ m = 3,\ A = -5,\ B = -4。 由于只有一种类型的活动,且 mnm \leq n,一种可行的最优方案是第 11 天去新加坡,第 mm 天离开。

由于每个活动的幸福值是 1010,且 m=3m = 3,所以最优幸福值是 3030

对于样例 #2:

由于只有一种类型的活动,且 n>mn > m,一种可行的最优方案是第 11 天去新加坡,第 nn 天离开。 同时,我们需要跳过 T[mn+1]T[m - n + 1]T[n]T[n] 这几个目标活动。

由于每个活动的幸福值是 1010n=3, m=5n = 3,\ m = 5,因此前 33 个目标活动可以尝试,获得幸福值 10×3=3010 \times 3 = 30。 跳过最后 22 个目标活动,幸福值减少 A+2B=10+2(5)=20A + 2B = -10 + 2(-5) = -20

因此,总幸福值是 1010

对于样例 #3:

最优方案是尝试第 22 天的 S[2]=1S[2] = 1,第 33 天的 S[3]=2S[3] = 2 和第 55 天的 S[5]=4S[5] = 4。 获得的幸福值是 1+2+4=71 + 2 + 4 = 7

对于样例 #4:

最优方案是尝试第 55 天的 S[5]=1S[5] = 1 和第 66 天的 S[6]=4S[6] = 4。 幸福值是 1+4(2×3)=11 + 4 - (2 \times 3) = -1

对于样例 #5:

最优方案是尝试第 55 天的 S[5]=1S[5] = 1 和第 66 天的 S[6]=4S[6] = 4。 跳过 T[2]T[2]T[3]T[3],幸福值减少 3-3。 幸福值是 1+43=21 + 4 - 3 = 2

对于样例 #6:

最优方案是在第 22 天到达新加坡,第 55 天离开。 该方案尝试了第 22 天的 S[2]=1S[2] = 1,第 33 天的 S[3]=5S[3] = 5 和第 55 天的 S[5]=6S[5] = 6。 我们跳过了 T[2]T[2]T[4]T[4],因此幸福值减少 2+3×(1)=5-2 + 3 \times (-1) = -5。 我们跳过了第 44 天,幸福值减少 2+(1)=3-2 + (-1) = -3。 幸福值是 1+5+653=41 + 5 + 6 - 5 - 3 = 4

【数据范围】

  • 1K10001 \leq K \leq 1000
  • 1n,m50001 \leq n, m \leq 5000
  • 100A,B0-100 \leq A, B \leq 0
  • 1V[i]1001 \leq V[i] \leq 100
子任务编号 分值 额外限制
11 44 K=1, mn103K = 1,\ m \leq n \leq 10^3
22 66 K=1, n<m103K = 1,\ n < m \leq 10^3
33 1212 A=B=0A = B = 0
44 77 A=0A = 0
55 88 B=0B = 0
66 1313 n, m<100n,\ m < 100
77 5050 无额外限制