AT_agc070_d.[AGC070D] 2D Solitaire
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定正整数 N 和 K,还有两个排列 A=(A1,A2,…,AN+K) 和 B=(B1,B2,…,BN+K)。你需要处理 Q 个独立的查询。
每个查询都会给出一个整数对 (X,Y),你的任务是解决以下问题:
假设有从编号 1 到 N+K+X 的 N+K+X 张卡牌,其中每张卡牌上都有一个整数对:
- 对于 1≤i≤N+K,卡牌 i 上的整数对为 (Ai,Bi);
- 对于 N+K+1≤i≤N+K+X,卡牌 i 上的整数对为 (i,Y)。
你一开始持有编号 1 到 N 的 N 张卡牌,而编号从 N+1 到 N+K+X 的 K+X 张卡牌放在场上。
你可以进行以下操作任意次数:
- 从持有的卡牌中选一张卡片 i,从场上选一张卡片 j,两个卡片编号需满足以下条件:
- 持有的卡片 i 上的整数对是 (ai,bi),场上的卡片 j 上的整数对是 (aj,bj),并且 ai<aj 且 bi<bj。
- 然后,移除场上的卡片 j,将卡片 i 放到场上。(移除的卡片不能再使用。)
你需要通过上述操作,使持有的卡片数量达到最少,最少能达到多少?
输入格式
输入包含一行,按以下格式给出:
N K Q A1 A2 … AN+K B1 B2 … BN+K 查询1 查询2 … 查询Q
每个查询的格式如下:
X Y
输出格式
输出 Q 行,每行一个整数,第 i 行表示第 i 个查询的答案。
输入输出样例
输入#1
5 1 6 1 2 3 4 6 5 4 2 5 1 6 3 2 1 2 2 2 3 2 4 2 5 2 6
输出#1
4 3 3 3 2 1
输入#2
10 2 10 12 3 2 4 10 9 5 8 1 6 11 7 3 7 2 6 10 9 1 11 5 8 4 12 2 6 3 3 1 3 1 7 1 12 3 4 3 11 2 1 2 8 1 5
输出#2
4 5 5 4 2 4 1 6 3 4
输入#3
20 3 10 18 16 5 12 21 23 14 1 19 17 3 15 13 22 7 4 2 8 9 20 6 11 10 18 1 6 20 9 13 21 17 4 16 15 22 12 14 10 23 2 5 3 19 7 11 8 1 11 1 3 3 19 1 22 2 15 4 9 3 16 1 19 5 21 2 3
输出#3
13 15 6 11 9 13 8 12 3 15
说明/提示
- 1≤N≤200,000
- 1≤K≤10
- 1≤Q≤200,000
- 1≤Ai≤N+K
- 1≤Bi≤N+K
- A 和 B 都是 (1,2,…,N+K) 的排列
- 1≤X≤10
- 1≤Y≤N+K
- 所有输入均为整数
示例解释
以第二个查询 (X,Y)=(2,2) 为例:
- 初始持有的卡片为:(1,4),(2,2),(3,5),(4,1),(6,6)
- 场上的卡牌为:(5,3),(7,2),(8,2)
通过以下操作,可将持有的卡牌减少到 3 张,且不能再少:
-
选择持有的卡片 (2,2) 和场上的卡片 (5,3),执行操作后:
- 持有的卡片变为:(1,4),(3,5),(4,1),(6,6)
- 场上的卡片变为:(2,2),(7,2),(8,2)
-
再选择持有的卡片 (4,1) 和场上的卡片 (8,2),执行操作后:
- 持有的卡片变为:(1,4),(3,5),(6,6)
- 场上的卡片变为:(2,2),(7,2),(4,1)
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?