#CF2171G. Sakura Adachi and Optimal Sequences

    ID: 6993 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>位运算组合数学贪心数学CodeforcesCodeforces Round 1065(Div3)Div3GCF2171G2000

Sakura Adachi and Optimal Sequences

题目描述

“真令人头疼……”

—— Hougetsu Shimamura

Adachi 正在为一道世代传承的难题抓耳挠腮……呃,对,就是这道题!反正,请你帮她解决吧!

你有两个长度为 nn 的数组 aabb,满足 1aibi1\leq a_i\leq b_i

每次操作,你可以:

  • 选择一个下标 ii1in1 \leq i \leq n),令 ai:=ai+1a_i := a_i + 1,或者
  • 使 aa 的所有元素都乘以 22

xx 为将 aa 变为 bb 所需的最少操作次数。长度为 nn 的两个数组 aabb,当且仅当对于所有 1in1 \leq i \leq n 都有 ai=bia_i = b_i 时,认为 a=ba = b

xx 的值。此外,计算用恰好 xx 次操作将 aa 变为 bb 的不同操作序列数量。若对于任意 1jx1 \leq j \leq x,两条操作序列第 jj 步所选的操作类型或下标不同,则认为这两条操作序列不同。

由于方案数可能很大,请将答案对 106+310^6+3 取模输出。注意 106+310^6+3 是一个质数。

输入格式

第一行包含一个整数 tt1t1041\leq t\leq 10^4),表示测试用例数量。

每个测试用例的第一行包含一个整数 nn2n21052 \leq n \leq 2 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1061\leq a_i\leq 10^6)。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_naibi106a_i \leq b_i \leq 10^6)。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出两个整数 xx,以及用恰好 xx 次操作将 aa 变为 bb 的不同操作序列数量,对 106+310^6+3 取模。xx 的值应按通常方式输出,不需要取模。

样例

8
6
1 3 6 4 3 2
3 7 10 4 4 8
2
1 1
4 3
5
2 3 2 5 1
18 13 10 30 7
5
5 4 3 6 2
100 125 231 113 107
4
2 2 2 2
2 2 2 2
4
1 1 1 1
2 2 2 2
7
1 1 1 1 1 1 200000
200000 200000 200000 200000 200000 200000 200000
3
542264 174876 441510
641112 325241 995342
17 827116
3 1
12 288
35 567812
0 1
1 1
1199994 0
803045 366998

样例说明

在第二个样例中,只需三步即可将 aa 变为 bb,并且只有一种做法,具体为:

  • a1a_111,得到 a=[2,1]a = [2, 1]。然后将所有元素乘 22,得到 a=[4,2]a = [4, 2]。然后对 a2a_211,得到 a=[4,3]a = [4, 3]。此时 a=ba = b,达成目标。

可以证明,无法通过少于三次操作将 aa 变为 bb

由 ChatGPT 5 翻译

来源

Codeforces 2171G,英文题名 Sakura Adachi and Optimal Sequences。