CF1974F.Cutting Game
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Alice 和 Bob 又在玩游戏了。他们有一个大小为 a×b 的网格(1≤a,b≤109),网格上有 n 个棋子,每个格子最多有一个棋子。第 x 行第 y 列的格子的坐标为 (x,y)。
Alice 先手,之后两人轮流操作。每次操作时,玩家可以从当前剩余网格的开头或结尾裁去若干(但不是全部)行或列,并且每裁去一颗棋子就获得 1 分。每次操作可以用一个字符 'U'、'D'、'L' 或 'R' 和一个整数 k 来描述:
- 如果字符为 'U',则裁去当前剩余网格的前 k 行;
- 如果字符为 'D',则裁去当前剩余网格的后 k 行;
- 如果字符为 'L',则裁去当前剩余网格的前 k 列;
- 如果字符为 'R',则裁去当前剩余网格的后 k 列。
根据初始网格状态和玩家的操作,求 Alice 和 Bob 分别获得的分数。
输入格式
第一行包含一个整数 t(1≤t≤104)——测试用例数量。
每个测试用例的第一行包含四个整数 a、b、n 和 m(2≤a,b≤109,1≤n,m≤2×105)——网格的行数、列数、棋子数和操作数。
接下来的 n 行,每行包含两个整数 xi 和 yi(1≤xi≤a,1≤yi≤b)——每个棋子的坐标。所有坐标对均不相同。
接下来的 m 行,每行包含一个字符 cj 和一个整数 kj——第 j 次操作的描述。保证 k 小于当前网格剩余的行数或列数,即玩家不能一次裁去所有剩余的行或列。
保证所有测试用例中 n 的总和不超过 2×105,所有测试用例中 m 的总和不超过 2×105。
输出格式
对于每个测试用例,输出两个整数,分别表示 Alice 和 Bob 获得的分数。
输入输出样例
输入#1
6 4 4 3 2 4 1 3 3 2 4 D 2 R 1 4 4 3 3 4 1 3 2 2 3 D 1 L 1 U 2 3 5 3 2 1 3 2 2 3 3 R 2 R 2 6 4 4 2 1 4 2 3 5 3 1 1 R 1 U 1 9 3 2 1 6 1 3 3 D 8 10 10 2 5 7 5 9 1 R 1 L 2 D 1 U 4 D 1
输出#1
2 1 2 0 0 3 1 1 2 0 0 1
说明/提示
以下是第一个样例的游戏过程:

Alice 首先从底部裁去 2 行,获得 2 分,然后 Bob 从右侧裁去 1 列,获得 1 分。注意,如果 Bob 从底部裁去 1 行,也会获得 1 分。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?