无限纸牌游戏
题目描述
Monocarp 和 Bicarp 正在玩一个纸牌游戏。每张牌都有两个参数:攻击值和防御值。如果一张牌 $ s $ 的攻击值严格大于 $ t $ 的防御值,那么这张牌 $ s $ 就能打败另一张牌 $ t $。
Monocarp 有 $ n $ 张牌,其中第 \(i\) 张牌的攻击值为 $ \mathit{ax}_i $,防御值为 $ \mathit{ay}_i $。 Bicarp 有 $ m $ 张牌,其中第 \(j\) 张牌的攻击值为 $ \mathit{bx}_j $,防御值为 $ \mathit{by}_j $。
在第一步棋中,Monocarp 选择他的一张牌并打出。比卡普必须用自己的牌来回应,而这张牌要胜过那张牌。之后,莫诺卡普必须用一张击败比卡普的牌来回应。之后,轮到比卡普,依此类推。
一张牌被击败后,会回到出牌者的手中。这意味着每位玩家在游戏开始时都有同一套牌可打。游戏结束时,当前玩家手中的牌不能击败对手刚刚打出的牌,当前玩家输掉游戏。
如果游戏持续 $ 100^{500} $ 步,则宣布平局。
Monocarp 和 Bicarp 都是最佳下法。也就是说,如果棋手无论对手下了多少步棋都有获胜的策略,那么他就会下赢的棋。否则,如果他有和棋策略,他就下和棋。
要求您计算三个值:
- 莫诺卡普的起始步中导致莫诺卡普获胜的步数;
- 莫诺卡普的起始棋步中导致和棋的步数;
- Monocarp 的起手棋导致 Bicarp 获胜的步数。
输入格式
第一行包含一个整数 $ t $ ( $ 1 \le t \le 10^4 $ ) - 测试用例的数量。
每个测试用例的第一行包含一个整数 $ n $ ( $ 1 \le n \le 3 \cdot 10^5 $ ) - Monocarp 拥有的卡片数量。
第二行包含 $ n $ 个整数 $ \mathit{ax}_1, \mathit{ax}_2, \dots, \mathit{ax}_n $ ( $ 1 \le \mathit{ax}_i \le 10^6 $ ) - Monocarp 纸牌的攻击值。
第三行包含 $ n $ 个整数 $ \mathit{ay}_1, \mathit{ay}_2, \dots, \mathit{ay}_n $ ( $ 1 \le \mathit{ay}_i \le 10^6 $ ) - Monocarp 牌的防御值。
第四行包含一个整数 $ m $ ( $ 1 \le m \le 3 \cdot 10^5 $ ) - Bicarp 的牌数。
第五行包含 $ m $ 整数 $ \mathit{bx}_1, \mathit{bx}_2, \dots, \mathit{bx}_m $ ( $ 1 \le \mathit{bx}_j \le 10^6 $ ) - Bicarp 纸牌的攻击值。
第六行包含 $ m $ 整数 $ \mathit{by}_1, \mathit{by}_2, \dots, \mathit{by}_m $ ( $ 1 \le \mathit{by}_j \le 10^6 $ ) - Bicarp 牌的防御值。
输入的其他限制条件:所有测试案例的 $ n $ 之和不超过 $ 3 \cdot 10^5 $ ,所有测试案例的 $ m $ 之和不超过 $ 3 \cdot 10^5 $ 。
输出格式
对于每个测试用例,打印三个整数:
- Monocarp 的起始移动中 Monocarp 获胜的移动次数;
- Monocarp 的起始棋步导致和棋的次数;
- Monocarp 的起始棋步导致 Bicarp 获胜的棋步数。
样例 #1
样例输入 #1
3
3
8 7 4
7 1 10
2
8 4
5 10
9
8 8 5 5 5 4 4 1 4
2 7 5 2 8 9 7 1 9
10
9 8 7 6 5 5 4 3 2 1
7 1 6 7 5 8 8 4 9 6
1
10
5
1
10
5
样例输出 #1
1 1 1
2 4 3
0 1 0
标签:10,le,mathit,Monocarp,张牌,Bicarp,Game,Infinite,Card
From: https://www.cnblogs.com/gutongxing/p/18254340