[GDKOI2024 提高组] 计算
赛事要求
2024 年广东省重点中学信息学邀请赛 (GDKOI 2024)
提高组 第二试
2024 年 1 月 7 日
注意事项
- 严格按照题目所要求的格式进行输入、输出,否则严重影响得分。
- 题目测试数据有严格的时间限制,超时不得分。
- C/C++ 中函数 main() 的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
- 输入文件格式不用判错;输入输出文件名均已给定,不用键盘输入。
- 评测环境为 NOI 系列活动标准竞赛环境,编译器版本为 g++ 9.4.0。
- 若无特殊说明,结果的比较方式为全文比较 (过滤行末空格及文末回车)。
- 对于 C++ 选手,64 位整数输入输出格式为 %lld。
- 选手提交的程序源文件必须不大于 100KB。
- 对于 C++ 语言的编译选项为 -O2 -std=c++14
题目描述
定义 F(x,a,b)=gcd(xa−1,xb−1)+1,x>0。
特别的,如果 a=0 或 b=0,F(x,a,b)=0。
现在给出五个非负整数 m,a,b,c,d。
令 L=F(m,a,b)+1,R=F(m,c,d)。
问集合 {L,L+1,L+2,…,R−2,R−1,R} 有多少个子集和是 m 的倍数。
由于答案可能很大,你只需要输出方案数对 998244353 取模后的结果就可以了。
输入格式
输入第一行为一个整数 T,表示数据组数。
接下来一行 T 行,每行五个非负整数 m,a,b,c,d。
输出格式
对于每组数据,输出答案。
样例 #1
样例输入 #1
3
5 0 0 2 1
4 1 2 2 4
8 3 2 4 6
样例输出 #1
8
1024
527847872
提示
【样例解释】
经过计算可知 L=1,R=5,集合是 1,2,3,4,5,满足条件的子集和有以下 8 个:
{},{5},{2,3},{1,4},{1,2,3,4},{2,3,5},{1,4,5},{1,2,3,4,5}。
【数据范围】
测试点编号 |
m |
L |
R |
a |
b |
c |
d |
T |
特殊性质 |
1 |
m=2 |
L=1 |
R=2 |
a=0 |
b=0 |
c≤10 |
d≤10 |
T≤5 |
无 |
2 |
m≤10 |
R=m |
3 |
m≤5 |
L≤103 |
R≤103 |
a≤10 |
b≤10 |
1 |
4∼6 |
m≤20 |
L≤2×103 |
R≤2×103 |
无 |
7 |
L≤105 |
R≤105 |
a≤102 |
b≤102 |
c≤102 |
d≤102 |
2 |
8,9 |
m≤80 |
L≤109 |
R≤109 |
无 |
10∼13 |
m≤2×103 |
L≤1018 |
R≤1018 |
a≤103 |
b≤103 |
c≤103 |
d≤103 |
14∼17 |
m≤105 |
18∼20 |
m≤107 |
T≤104 |
- 特殊性质 1:R−L+1≤20;
- 特殊性质 2:R−L+1≤2000;
对于全部数据,保证 L<R,m>0。