2020年团体程序设计天梯赛-总决赛 L3-3 可怜的复杂度

L3-3 可怜的复杂度 (30分)

可怜有一个数组 A,定义它的复杂度 c(A) 等于它本质不同的子区间个数。举例来说,c([1,1,1])=3,因为 [1,1,1] 只有 3 个本质不同的子区间 [1]、[1,1] 和 [1,1,1];而 c([1,2,1])=5,它包含 5 个本质不同的子区间 [1]、[2]、[1,2]、[2,1]、[1,2,1]。

可怜打算出一道和复杂度相关的题目。众所周知,引入随机性往往可以让一个简单的题目脱胎换骨。现在,可怜手上有一个长度为 n 的正整数数组 x 和一个正整数 m。接着,可怜会独立地随机产生 n 个 [1,m] 中的随机整数 y​i​​ ,并把 x​i​​ 修改为 mx​i​​ +y​i​​ 。

显然,一共有 N=m​n​​ 种可能的结果数组。现在,可怜想让你求出这 N 个数组的复杂度的和。

输入格式:

第一行给出一个整数 t (1≤t≤5) 表示数据组数。

对于每组数据,第一行输入两个整数 n 和 m (1≤n≤100,1≤m≤10​9​​ ),第二行是 n 个空格隔开的整数表示数组 x 的初始值 (1≤x​i​​ ≤10​9​​ )。

输出格式:

对于每组数据,输出一行一个整数表示答案。答案可能很大,你只需要输出对 998244353 取模后的结果。

输入样例:

4
3 2
1 1 1
3 2
1 2 1
5 2
1 2 1 2 1
10 2
80582987 187267045 80582987 187267045 80582987 187267045 80582987 187267045 80582987 187267045

输出样例:

36
44
404
44616
作者 吉如一
单位 北京大学
代码长度限制 16 KB
时间限制 8000 ms
内存限制 256 MB

题解

暂无

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值