CF2003D2.Turtle and a MEX Problem (Hard Version)
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
两个版本的问题是不同的。在这个版本的问题中,你不能选择同一个整数两次或更多次。只有当两个版本都解决时,才能进行 hack。
有一天,乌龟正在玩 n 个序列。设第 i 个序列的长度为 li,则第 i 个序列为 ai,1,ai,2,…,ai,li。
当乌龟在玩耍时,小猪给了他一个问题来解决。问题的陈述如下:
- 最初有一个非负整数 x。乌龟可以对这个整数执行任意次数(可能为零)的操作。
- 在每次操作中,乌龟可以选择一个之前未被选择过的整数 i(满足 1≤i≤n),并将 x 设为 mex†(x,ai,1,ai,2,…,ai,li)。
- 乌龟被要求找到答案,即在执行任意次数操作后 x 的最大值。
乌龟轻松解决了上述问题。他定义 f(k) 为初始值 x 为 k 时上述问题的答案。
然后小猪给了乌龟一个非负整数 m,并要求乌龟找出 i=0∑mf(i) 的值(即 f(0)+f(1)+…+f(m) 的值)。不幸的是,他无法解决这个问题。请帮助他!
mex(c1,c2,…,ck) 定义为不在序列 c 中出现的最小非负整数 x。例如,mex(2,2,0,3) 是 1,mex(1,2) 是 0。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤104)。接下来是测试用例的描述。
每个测试用例的第一行包含两个整数 n,m(1≤n≤2⋅105,0≤m≤109)。
接下来的 n 行每行包含若干个整数。第一个整数 li(1≤li≤2⋅105)表示第 i 个序列的长度,后面跟着 li 个整数 ai,1,ai,2,…,ai,li(0≤ai,j≤109)表示第 i 个序列的元素。
保证所有测试用例中的 n 之和不超过 2⋅105,并且所有测试用例中的 ∑li 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数 —— i=0∑mf(i) 的值。
输入输出样例
输入#1
6 3 4 2 0 2 3 2 3 3 4 7 0 1 5 3 4 5 0 2 0 4 11 1 1 5 1 3 0 3 3 2 50 2 1 2 2 1 2 1 1 7 1 2 4 1 4 9 5 4 114514 2 2 2 5 7 3 6 0 3 3 0 1 1 5 0 9 2 1 5 5 1919810 1 2 2 324003 0 3 1416324 2 1460728 4 1312631 2 0 1415195 5 1223554 192248 2 1492515 725556
输出#1
16 18 1281 4 6556785365 1842836177961
说明/提示
在第一个测试用例中,当 x 初始值为 2 时,乌龟可以选择 i=3 并将 x 设为 mex(x,a3,1,a3,2,a3,3,a3,4)=mex(2,7,0,1,5)=3。可以证明乌龟无法使 x 的值大于 3,因此 f(2)=3。
可以看出 f(0)=3,f(1)=3,f(2)=3,f(3)=3,f(4)=4。所以 f(0)+f(1)+f(2)+f(3)+f(4)=3+3+3+3+4=16。
在第二个测试用例中,当 x 初始值为 1 时,乌龟可以选择 i=1 并将 x 设为 mex(x,a1,1,a1,2,a1,3,a1,4,a1,5)=mex(1,0,2,0,4,11)=3。可以证明乌龟无法使 x 的值大于 3,因此 f(1)=3。
可以看出 f(0)=4,f(1)=3,f(2)=4,f(3)=3,f(4)=4。所以 f(0)+f(1)+f(2)+f(3)+f(4)=4+3+4+3+4=18。
在第四个测试用例中,可以看出 f(0)=3 和 f(1)=1。所以 f(0)+f(1)=3+1=4。
输入解题思路,AI测评打分。不知道怎么写?