题目背景
回首往昔,碧空如洗,日暖风恬。
溪石深浅有致地错落在明澈似玉的梦枫溪里。
浣熊们水上跑酷的无限趣忆亦于此伊始……
题目描述
日升月落,春去秋来,梦枫溪石的高度千变万化。
爱思考的小浣熊 CleverRaccoon 想探寻这些溪石究竟能构成多少种不同的高度序列。
现有若干个长度为 n 的非负整数列 a。
当 n>1 时,a1,an 的取值为 0∼m,其它数 ai 的取值为 0∼m−1,其中 2≤i≤n−1。
当 n=1 时,a1 的取值为 0∼m+1。
定义:当且仅当 ∀i∈{1,2,…,n},ai=bi 或 ∀i∈{1,2,…,n},ai=bn−i+1 时,数列 a,b 相同。
现给定 n,m,请求出最多有多少个不同的数列,答案对 998244353 取模。
输入格式
本题包含多组测试数据。
第一行,输入一个正整数 T,表示数据组数。
接下来 T 行,每行输入以空格间隔的 2 个正整数 n,m,意义见题目描述。
输出格式
共 T 行,对于每组数据,一行输出一个正整数,表示答案对 998244353 取模的结果。
3
1 3
2 2
6 3
5
6
666
提示
解释 #1
当 n=1,m=3 时,ai∈{0,1,2,3,4},共有 5 种不同的高度序列。
当 n=2,m=2 时,共有 6 种不同的高度序列,详情如下:
序号 |
a1= |
a2= |
1 |
0 |
0 |
2 |
1 |
3 |
2 |
4 |
1 |
1 |
5 |
2 |
6 |
2 |
数据范围
本题采用 Subtask 捆绑测试。
Subtask |
n≤ |
m≤ |
T≤ |
特殊性质 |
Score |
0 |
10 |
无特殊性质 |
10 |
1 |
103 |
1 |
103 |
m=1 |
5 |
2 |
3 |
10 |
m=3 |
10 |
3 |
103 |
1 |
无特殊性质 |
15 |
4 |
106 |
100 |
10 |
5 |
106 |
106 |
20 |
6 |
109 |
109 |
n 为奇数 |
10 |
7 |
n 为偶数 |
8 |
1018 |
无特殊性质 |
对于 100% 的数据,保证 1≤n≤1018,1≤m≤109,1≤T≤106。