luogu#P16701. [MCO 2026] 制造连招

    ID: 16923 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划 DP2026MCC/MCO(马来西亚)

[MCO 2026] 制造连招

题目描述

龙 Evirir 正在玩一款电子游戏,它想通过连续释放技能来使总伤害最大化。

Evirir 可以使用 NN 个不同的技能,编号为 0,1,,N10, 1, \ldots, N - 1。对于每个技能 ii,它的颜色为 CiC_i,伤害为 DiD_i。共有 MM 条技能连接,每条连接是一个技能对 (Ui,Vi)(U_i, V_i),其中 0iM10 \le i \le M - 1

一个连招是一个长度为 l1l \ge 1 的技能序列 s0,s1,,sl1s_0, s_1, \ldots, s_{l - 1},满足对于所有 0i<l10 \le i < l - 1(si,si+1)(s_i, s_{i+1}) 都是这 MM 条技能连接之一。题目保证输入中的技能连接不会形成环。也就是说,不可能构建一个包含同一技能两次的连招。

该连招的总威力按如下方式计算。设有一个倍率 BB,初始时 B=1B = 1。对于 i=0,1,,l1i = 0, 1, \ldots, l - 1,依次进行:

  • 如果 i=0i = 0,则不做任何事。
  • 否则:
    • 如果技能 sis_isi1s_{i - 1} 的颜色相同,则将 BB 乘以 22
    • 如果技能 sis_isi1s_{i - 1} 的颜色不同,则将 BB 设为 11
  • 然后,技能 sis_i 的威力为 Dsi×BD_{s_i} \times B

连招的总威力就是所有已释放技能威力之和。

例如,假设某个连招按顺序包含如下技能:(3,7)(3,7)(2,5)(2,5)(4,7)(4,7)(1,7)(1,7)(5,7)(5,7)(6,7)(6,7)(3,6)(3,6),其中 (x,y)(x, y) 表示一个伤害为 xx、颜色为 yy 的技能。计算过程如下:

s0s_0 s1s_1 s2s_2 s3s_3 s4s_4 s5s_5 s6s_6
颜色 CsiC_{s_i} 77 55 77 66
伤害 DsiD_{s_i} 33 22 44 11 55 66 33
倍率 BB 11 22 44 88 11
威力 3×1=33 \times 1 = 3 2×1=22 \times 1 = 2 4×1=44 \times 1 = 4 1×2=21 \times 2 = 2 5×4=205 \times 4 = 20 6×8=486 \times 8 = 48 3×1=33 \times 1 = 3

因此,这个连招的总威力为 3+2+4+2+20+48+3=823 + 2 + 4 + 2 + 20 + 48 + 3 = 82

显然,Evirir 想要施放一个总威力最大的连招。为此,它安装了一个外挂,可以将任意技能的颜色改成一个固定颜色 TT。Evirir 最多只能使用这个外挂 KK 次(也就是说,最多只能修改 KK 个技能的颜色)。

求 Evirir 能达到的最大总威力是多少。如果最大总威力严格大于 10910^9,输出 1-1

输入格式

第一行包含四个用空格分隔的整数 NNMMKKTT

接下来有 NN 行,其中第 ii 行包含两个用空格分隔的整数 DiD_iCiC_i

接下来有 MM 行,其中第 ii 行包含两个用空格分隔的整数 UiU_iViV_i

输出格式

输出一个整数,表示可能的最大总威力。如果它严格大于 10910^9,则输出 1-1。如果它恰好等于 10910^9,则应输出 10910^9

6 7 2 1
3 1
2 3
4 1
5 2
1 5
2 0
0 1
3 4
2 3
0 3
3 5
1 2
0 5
65
5 4 0 5
2 0
3 1
2 0
3 0
13 0
0 1
1 2
2 3
3 4
65
4 3 4 0
100000000 0
100000000 1
100000000 2
100000000 3
0 1
1 2
2 3
-1

提示

提示

样例 1\underline{样例\ 1}

这个样例符合子任务 4 和 7。

下面给出一个可视化图示。从技能 xx 指向技能 yy 的箭头表示存在一条技能连接 (x,y)(x, y),也就是说 Evirir 可以在技能 xx 之后立刻使用技能 yy。左上角的大圆圈说明了每个数字的含义。

:::align{center} :::

Evirir 最多可以将 K=2K = 2 个技能的颜色改为颜色 T=1T = 1。它可以把技能 1133 的颜色改为 11,然后施放技能序列 012350 \to 1 \to 2 \to 3 \to 5。总威力为 $(1 \times 3) + (2 \times 2) + (4 \times 4) + (8 \times 5) + (1 \times 2) = 65$。

一个不是连招的例子是技能序列 03450 \to 3 \to 4 \to 5,因为 (4,5)(4, 5) 不是这 MM 条技能连接之一。

样例 2\underline{样例\ 2}

这个样例符合子任务 2、3、4、5、6、和 7。

共有 N=5N = 5 个技能和 M=4M = 4 条技能连接。K=0K = 0,因此 Evirir 不能修改任何技能的颜色。 最优连招是施放技能 012340 \to 1 \to 2 \to 3 \to 4。总威力为 $(2 \times 1) + (3 \times 1) + (2 \times 1) + (3 \times 2) + (13 \times 4) = 65$。

样例 3\underline{样例\ 3}

这个样例符合子任务 1、3、4、5、6、和 7。

由于 K=4K = 4,Evirir 可以将技能 112233 的颜色改为颜色 T=0T = 0。最优连招是施放技能 01230 \to 1 \to 2 \to 3。总威力为 $(10^8 \times 1) + (10^8 \times 2) + (10^8 \times 4) + (10^8 \times 8) > 10^9$。由于最大可能总威力严格大于 10910^9,因此输出 1-1

评分

对于所有测试用例,输入满足以下限制:

  • 1N1041 \le N \le 10^4
  • $0 \le M \le \min\left(10^5, \frac{N(N - 1)}{2}\right)$
  • 对所有 0iN10 \le i \le N - 1,有 1Di1081 \le D_i \le 10^8
  • 对所有 0iN10 \le i \le N - 1,有 0CiN10 \le C_i \le N - 1
  • 0TN0 \le T \le N。注意,TT 可能等于 NN,即一个未被使用的颜色。
  • 0KN0 \le K \le N
  • 对所有 0iM10 \le i \le M - 1,有 0Ui,ViN10 \le U_i, V_i \le N - 1UiViU_i \neq V_i
  • 对所有 0iM10 \le i \le M - 1,数对 (Ui,Vi)(U_i, V_i) 两两相异。
  • 保证技能连接不会形成环。也就是说,不可能构建一个包含同一技能两次的连招。
子任务 分值 额外限制
11 88 M=N1M = N - 1,且对所有 0iM10 \le i \le M - 1(Ui,Vi)=(i,i+1)(U_i, V_i) = (i, i + 1)K=NK = N
22 99 M=N1M = N - 1,且对所有 0iM10 \le i \le M - 1(Ui,Vi)=(i,i+1)(U_i, V_i) = (i, i + 1)K=0K = 0
33 3131 M=N1M = N - 1,且对所有 0iM10 \le i \le M - 1(Ui,Vi)=(i,i+1)(U_i, V_i) = (i, i + 1)N50N \le 50
44 1414 N50N \le 50
55 1717 M=N1M = N - 1,且对所有 0iM10 \le i \le M - 1(Ui,Vi)=(i,i+1)(U_i, V_i) = (i, i + 1)N300N \le 300
66 M=N1M = N - 1,且对所有 0iM10 \le i \le M - 1(Ui,Vi)=(i,i+1)(U_i, V_i) = (i, i + 1)
77 44 ---