luogu#P9554. 「CROI · R1」浣熊的溪石

「CROI · R1」浣熊的溪石

题目背景

回首往昔,碧空如洗,日暖风恬。
溪石深浅有致地错落在明澈似玉的梦枫溪里。
浣熊们水上跑酷的无限趣忆亦于此伊始……

题目描述

日升月落,春去秋来,梦枫溪石的高度千变万化。 爱思考的小浣熊 CleverRaccoon 想探寻这些溪石究竟能构成多少种不同的高度序列。

现有若干个长度为 nn 的非负整数列 aa

n>1n>1 时,a1,ana_1,a_n 的取值为 0m0\sim m,其它数 aia_i 的取值为 0m10\sim m-1,其中 2in12\leq i \leq n-1

n=1n=1 时,a1a_1 的取值为 0m+10\sim m+1

定义:当且仅当 i{1,2,,n},ai=bi\forall i\in\{1,2,\dots ,n\},a_i=b_ii{1,2,,n},ai=bni+1\forall i\in\{1,2,\dots ,n\},a_i=b_{n-i+1} 时,数列 a,ba,b 相同。

现给定 n,mn,m,请求出最多有多少个不同的数列,答案对 998244353998244353 取模。

输入格式

本题包含多组测试数据。

第一行,输入一个正整数 TT,表示数据组数。

接下来 TT 行,每行输入以空格间隔的 22 个正整数 n,mn,m,意义见题目描述。

输出格式

TT 行,对于每组数据,一行输出一个正整数,表示答案对 998244353998244353 取模的结果。

3
1 3
2 2
6 3
5
6
666

提示

解释 #1

n=1,m=3n=1,m=3 时,ai{0,1,2,3,4}a_i\in\{0,1,2,3,4\},共有 55 种不同的高度序列。

n=2,m=2n=2,m=2 时,共有 66 种不同的高度序列,详情如下:

序号 a1=a_1= a2=a_2=
11 00 00
22 11
33 22
44 11 11
55 22
66 22

数据范围

本题采用 Subtask 捆绑测试。

Subtask nn\leq mm\leq TT\leq 特殊性质 Score
00 1010 无特殊性质 1010
11 10310^3 11 10310^3 m=1m=1 55
22 33 1010 m=3m=3 1010
33 10310^3 11 无特殊性质 1515
44 10610^6 100100 1010
55 10610^6 10610^6 2020
66 10910^9 10910^9 nn 为奇数 1010
77 nn 为偶数
88 101810^{18} 无特殊性质

对于 100%100\% 的数据,保证 1n1018,1m109,1T1061\leq n\leq10^{18},1\leq m\leq10^9,1\leq T\leq10^6