说明
随着 B 市中考招生方式的多元化,中考统招的名额数量日益减少,在本题目中,你需要根据平行志愿的招生原则(我们会给出详细的解释),高效模拟这一过程。
小 ζ 为了更好的填报志愿,找到了某年的中考志愿填报和录取的情况。
具体地,n 位学生第 i 个人会填报 li 个志愿,即 li 所学校。第 i 个人的第 j 志愿为学校 ai,j。总共有 m 所参与招生的学校,第 i 所提供了 ti 个名额。
按照以下流程确认每个人的录取情况,记 bi 为学校 i 已经招生人数:
- 找到所有目前未确定录取结果的最高分学生;
- 设未招满学校集合 S={i∣i∈[1,m]∧ti>bi};
- 对于每个当前的最高分学生 x,从第一志愿到最后志愿枚举学校 i=ax,1,ax,2,⋯,ax,lx:
- 如果 i∈S,则学生 x 被学校 i 录取,令 bi←bi+1,结束;否则,继续枚举下一个。
- 若枚举所有 i 后没有结束,则学生 x 不被任何学校录取。
- 在上一步中 bi 改变不会改变 S,也就是说可能会出现一些学校 bi>ti。无论这些学生有没有被录取,他们的录取结果都确定了。
- 反复执行该过程直至所有学生录取结果都确定。
对于一次询问,格式如下:
x v:永久性改变 tx←tx−v,输出录取结果变化的学生个数。
输入格式
第一行三个整数 n,m,q,代表学生人数、学校个数和询问次数。
接下来一行,m 个整数,第 i 个整数 ti 代表高中校 i 的招生名额数。
接下来 n 行,第 i 行第一个整数 li 代表学生 i 的志愿填报个数,接下来 li 个整数依次代表这位学生的第一至最后志愿高中校,最后一个整数 oi 表示学生 i 的中考分数。
接下来 q 行,每行均为 x v 格式,代表一次询问,含义详见题目描述。
输出格式
q 行,每行一个整数代表录取结果改变的学生数量。
5 3 5
1 2 5
3 1 2 3 3
3 1 2 3 2
3 3 2 1 5
2 3 2 4
1 3 4
3 1
3 2
3 1
3 1
2 2
0
0
2
2
3
提示
【样例解释 #1】
初始时,录取结果分别为(0 表示未被任何学校录取){1,2,3,3,3}。
前两次操作后,录取结果不变。
第三次操作后,录取结果分别为 {1,2,3,2,0}。
第四次操作后,录取结果分别为 {1,0,2,2,0}。
第五次操作后,录取结果分别为 {0,0,1,0,0}。
【数据规模与约定】
对于 100% 的数据:
- 1≤n,m,q≤3×105;
- 0≤ti≤106,0≤li≤m,∑li≤106,1≤ai,j≤m,0≤oi≤106;
- 对于同一个 i 不保证 ai,j 互不相同;
- 对于每次操作有 1≤x≤m 和 0≤v≤106,操作后保证 ti≥0。
提示:本题开启捆绑测试。
- Subtask 1(15 pts):n,m,q≤500,∑li≤5000。
- Subtask 2(20 pts):oi 只有两种取值。
- Subtask 3(35 pts):所有的 oi 互异。
- Subtask 4(30 pts):无特殊限制。