#P12755. [POI 2017 R3] 评分 Grades

[POI 2017 R3] 评分 Grades

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXIV Olimpiada Informatyczna — III etap Oceny

体育老师班上有 nn 名学生。学年即将结束,是时候为每位学生评定期末成绩了。老师根据学生运动能力,为每人分配了一个从 11nn 的数值 aia_i,数值越大表示运动能力越强,每位学生的 aia_i 各不相同。课堂开始时,学生按顺序排成一列,老师从左到右依次评分。评分范围从 11nn,共有 nn 种不同分数。

老师希望评分满足以下要求:

  • 对于任意两学生 vvuu,若 vv 的运动能力强于 uu,则 vv 的分数不得低于 uu,否则显失公平。
  • 对于任意两学生 vvuu,若 vv 站在 uu 右侧,晚于 uu 被评分,则 vv 的分数不得低于 uu,以免其感到失落。
  • 在满足上述条件的前提下,老师希望尽可能使用多种不同分数。

每节课学生以某种顺序排队。老师习惯固定顺序,但应学生请求,同意每两节课间有两名学生互换位置。老师尚未决定在哪节课评分。帮助他编写程序,计算每节课若在当时评分,最多能使用多少种不同分数。

输入格式

第一行包含两个正整数 n,zn, z,分别表示学生人数和剩余课次。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1ain)(1 \leq a_i \leq n),表示首节课按排队顺序的学生运动能力值,互不相同。

接下来的 z1z-1 行描述位置交换,第 ii 行包含两个整数 pi,qip_i, q_i (1pi<qin)(1 \leq p_i < q_i \leq n),表示第 ii 节课后,站在位置 pip_iqiq_i 的学生将在下节课前互换位置。

输出格式

输出 zz 行,第 ii 行包含一个整数,表示第 ii 节课评分时,老师最多能使用的不同分数种类。

3 4
1 2 3
1 3
1 2
2 3
3
1
1
2

提示

样例 1 解释

首节课学生顺序为 1,2,31,2,3,每人可获不同分数。第 22 节课顺序为 3,2,13,2,1,第 3 节课为 2,3,12,3,1,这两节课学生 11 因能力最低且最后评分,分数不得高于或低于他人。第 44 节课顺序为 2,1,32,1,3,学生 33 可获更高分数,学生 1122 须同分。

附加样例

  1. 小型样例,首节课奇数位置学生能力高于偶数位置,最后一节按能力升序排列。
  2. n=2000,z=n/2+1n=2000, z=n/2+1,奇数 iiai=i+1a_i=i+1,偶数 iiai=i1a_i=i-1pi=2i1,qi=2ip_i=2i-1, q_i=2i(连续学生对交换),分数种类从 n/2n/2 增至 nn
  3. n=z=300000,ai=in=z=300000, a_i=i(学生按能力升序),pi=i,qi=i+1p_i=i, q_i=i+1(学生 nn 依次与所有人交换),分数种类从 nn 降至 11

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n,z2000n, z \leq 2000 2424
22 n2000,z300000n \leq 2000, z \leq 300000 88
33 n,z100000n, z \leq 100000 3030
44 n1000000,z300000n \leq 1000000, z \leq 300000,最多 1515 种分数 1010
55 n1000000,z300000n \leq 1000000, z \leq 300000,仅与相邻学生交换 2020
66 n1000000,z300000n \leq 1000000, z \leq 300000 88