#P14193. [ICPC 2024 Hangzhou R] Gathering Mushrooms

[ICPC 2024 Hangzhou R] Gathering Mushrooms

Description

BaoBao 在森林里采蘑菇。森林里共有 nn 个位置,第 ii 个位置长着无限多的 tit_i 型蘑菇。每个位置都有一个木牌,第 ii 个位置的木牌指向位置 aia_i(可能有 ai=ia_i = i)。

由于森林里雾气很大,BaoBao 决定按照木牌的指示在各个位置间移动以保证安全。BaoBao 从位置 ss 出发,手里拿着一个空篮子,每次进入位置 cc(包括出发时 c=sc = s,无论是否之前到过位置 cc),都会采摘一个 tct_c 型的蘑菇放进篮子里,然后沿着指示牌走到 aca_c 位置。

给定整数 kk,对于每个 1sn1 \le s \le n,请你确定第一个在篮子里出现次数至少为 kk 的蘑菇类型。

Input Format

有多组测试数据。第一行包含一个整数 TT1T1041 \le T \le 10^4),表示测试数据组数。每组测试数据中:

第一行包含两个整数 nnkk1n2×1051 \le n \le 2 \times 10^51k1091 \le k \le 10^9),分别表示位置数和要求的出现次数。

第二行包含 nn 个整数 t1,t2,,tnt_1, t_2, \cdots, t_n1tin1 \le t_i \le n),表示第 ii 个位置长的蘑菇类型。

第三行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n1ain1 \le a_i \le n),表示第 ii 个位置的木牌所指向的位置编号。

保证所有测试数据的 nn 之和不超过 2×1052 \times 10^5

Output Format

为减少输出数据量,对于每组测试数据,输出一行一个整数,表示 i=1n(i×vi)\sum\limits_{i = 1}^{n} (i \times v_i),其中 viv_i 表示 s=is = i 时的答案。

3
5 3
2 2 1 3 3
2 5 1 2 4
5 4
2 2 1 3 3
2 5 1 2 4
3 10
1 2 3
1 3 2
41
45
14

Hint

对于第一个样例,v1=2v_1 = 2v2=3v_2 = 3v3=2v_3 = 2v4=3v_4 = 3v5=3v_5 = 3,因此应输出 $1 \times 2 + 2 \times 3 + 3 \times 2 + 4 \times 3 + 5 \times 3 = 41$。以 s=3s = 3 为例,BaoBao 采蘑菇的顺序是 {1,2,2,3,3,2,}\{1, 2, 2, 3, 3, 2, \cdots\},因此类型为 22 的蘑菇最早在篮子里出现了不少于 33 次。

由 ChatGPT 5 翻译