3603: [CSP-S 2022] 策略游戏game.cpp
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:0
题目描述
小 L 和小 Q 在玩一个策略游戏。
有一个长度为 nnn 的数组 AAA 和一个长度为 mmm 的数组 BBB,在此基础上定义一个大小为 n×mn \times mn×m 的矩阵 CCC,满足 Cij=Ai×BjC_{i j} = A_i \times B_jCij=Ai×Bj。所有下标均从 111 开始。
游戏一共会进行 qqq 轮,在每一轮游戏中,会事先给出 444 个参数 l1,r1,l2,r2l_1, r_1, l_2, r_2l1,r1,l2,r2,满足 1≤l1≤r1≤n1 \le l_1 \le r_1 \le n1≤l1≤r1≤n、1≤l2≤r2≤m1 \le l_2 \le r_2 \le m1≤l2≤r2≤m。
游戏中,小 L 先选择一个 l1∼r1l_1 \sim r_1l1∼r1 之间的下标 xxx,然后小 Q 选择一个 l2∼r2l_2 \sim r_2l2∼r2 之间的下标 yyy。定义这一轮游戏中二人的得分是 CxyC_{x y}Cxy。
小 L 的目标是使得这个得分尽可能大,小 Q 的目标是使得这个得分尽可能小。同时两人都是足够聪明的玩家,每次都会采用最优的策略。
请问:按照二人的最优策略,每轮游戏的得分分别是多少?
有一个长度为 nnn 的数组 AAA 和一个长度为 mmm 的数组 BBB,在此基础上定义一个大小为 n×mn \times mn×m 的矩阵 CCC,满足 Cij=Ai×BjC_{i j} = A_i \times B_jCij=Ai×Bj。所有下标均从 111 开始。
游戏一共会进行 qqq 轮,在每一轮游戏中,会事先给出 444 个参数 l1,r1,l2,r2l_1, r_1, l_2, r_2l1,r1,l2,r2,满足 1≤l1≤r1≤n1 \le l_1 \le r_1 \le n1≤l1≤r1≤n、1≤l2≤r2≤m1 \le l_2 \le r_2 \le m1≤l2≤r2≤m。
游戏中,小 L 先选择一个 l1∼r1l_1 \sim r_1l1∼r1 之间的下标 xxx,然后小 Q 选择一个 l2∼r2l_2 \sim r_2l2∼r2 之间的下标 yyy。定义这一轮游戏中二人的得分是 CxyC_{x y}Cxy。
小 L 的目标是使得这个得分尽可能大,小 Q 的目标是使得这个得分尽可能小。同时两人都是足够聪明的玩家,每次都会采用最优的策略。
请问:按照二人的最优策略,每轮游戏的得分分别是多少?
输入
从文件 game.in 中读入数据。
第一行输入三个正整数 n,m,qn, m, qn,m,q,分别表示数组 AAA,数组 BBB 的长度和游戏轮数。
第二行:nnn 个整数,表示 AiA_iAi,分别表示数组 AAA 的元素。
第三行:mmm 个整数,表示 BiB_iBi,分别表示数组 BBB 的元素。
接下来 qqq 行,每行四个正整数,表示这一次游戏的 l1,r1,l2,r2l_1, r_1, l_2, r_2l1,r1,l2,r2。
第一行输入三个正整数 n,m,qn, m, qn,m,q,分别表示数组 AAA,数组 BBB 的长度和游戏轮数。
第二行:nnn 个整数,表示 AiA_iAi,分别表示数组 AAA 的元素。
第三行:mmm 个整数,表示 BiB_iBi,分别表示数组 BBB 的元素。
接下来 qqq 行,每行四个正整数,表示这一次游戏的 l1,r1,l2,r2l_1, r_1, l_2, r_2l1,r1,l2,r2。
输出
输出到文件 game.out 中。
输出共 qq 行,每行一个整数,分别表示每一轮游戏中,小 L 和小 Q 在最优策略下的得分。
样例输入 复制
3 2 2
0 1 -2
-3 4
1 3 1 2
2 3 2 2
样例输出 复制
0
4
提示
样例2
输入 复制
6 4 5
3 -1 -2 1 2 0
1 2 -1 -3
1 6 1 4
1 5 1 4
1 4 1 2
2 6 3 4
2 5 2 3
输出
0
-2
3
2
-1
【样例解释 #1】
这组数据中,矩阵 CCC 如下:
而在第二轮游戏中,由于小 L 可以选 x=2x = 2x=2,小 Q 只能选 y=2y = 2y=2,如此得分为 444。
【样例 #3】
见附件中的game/game3.in与game/game3.ans。
【样例 #4】
见附件中的game/game4.in与game/game4.ans。
【数据范围】
对于所有数据,1≤n,m,q≤1051 \le n, m, q \le {10}^51≤n,m,q≤105,−109≤Ai,Bi≤109-{10}^9 \le A_i, B_i \le {10}^9−109≤Ai,Bi≤109。对于每轮游戏而言,1≤l1≤r1≤n1 \le l_1 \le r_1 \le n1≤l1≤r1≤n,1≤l2≤r2≤m1 \le l_2 \le r_2 \le m1≤l2≤r2≤m。
其中,特殊性质 1 为:保证 Ai,Bi>0A_i, B_i > 0Ai,Bi>0。特殊性质 2 为:保证对于每轮游戏而言,要么 l1=r1l_1 = r_1l1=r1,要么 l2=r2l_2 = r_2l2=r2。
本题需要使用文件输入输出,而非标准输入输出。
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
这组数据中,矩阵 CCC 如下:
000 000 −3-3−3 444 666 −8-8−8在第一轮游戏中,无论小 L 选取的是 x=2x = 2x=2 还是 x=3x = 3x=3,小 Q 都有办法选择某个 yyy 使得最终的得分为负数。因此小 L 选择 x=1x = 1x=1 是最优的,因为这样得分一定为 000。
而在第二轮游戏中,由于小 L 可以选 x=2x = 2x=2,小 Q 只能选 y=2y = 2y=2,如此得分为 444。
【样例 #3】
见附件中的game/game3.in与game/game3.ans。
【样例 #4】
见附件中的game/game4.in与game/game4.ans。
【数据范围】
对于所有数据,1≤n,m,q≤1051 \le n, m, q \le {10}^51≤n,m,q≤105,−109≤Ai,Bi≤109-{10}^9 \le A_i, B_i \le {10}^9−109≤Ai,Bi≤109。对于每轮游戏而言,1≤l1≤r1≤n1 \le l_1 \le r_1 \le n1≤l1≤r1≤n,1≤l2≤r2≤m1 \le l_2 \le r_2 \le m1≤l2≤r2≤m。
测试点编号 | n,m,q≤n, m, q \len,m,q≤ | 特殊条件 |
---|---|---|
111 | 200200200 | 1, 2 |
222 | 200200200 | 1 |
333 | 200200200 | 2 |
4∼54 \sim 54∼5 | 200200200 | 无 |
666 | 100010001000 | 1, 2 |
7∼87 \sim 87∼8 | 100010001000 | 1 |
9∼109 \sim 109∼10 | 100010001000 | 2 |
11∼1211 \sim 1211∼12 | 100010001000 | 无 |
131313 | 105{10}^5105 | 1, 2 |
14∼1514 \sim 1514∼15 | 105{10}^5105 | 1 |
16∼1716 \sim 1716∼17 | 105{10}^5105 | 2 |
18∼2018 \sim 2018∼20 | 105{10}^5105 | 无 |
其中,特殊性质 1 为:保证 Ai,Bi>0A_i, B_i > 0Ai,Bi>0。特殊性质 2 为:保证对于每轮游戏而言,要么 l1=r1l_1 = r_1l1=r1,要么 l2=r2l_2 = r_2l2=r2。
本题需要使用文件输入输出,而非标准输入输出。
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);