AT_KeioPC2025_c.Addictive Addition
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的正整数列 A=(A1,A2,…,AN)。对于一个整数列 X=(X1,X2,…,Xl),用如下方式定义 f(X):
- 对于 0≤i≤N,定义正整数列 C(i) 为 (A1,A2,…,Ai,X1,X2,…,Xl,Ai+1,Ai+2,…,AN,i)。在这 N+1 个数列中,选择字典序最小的那一个(可以证明是唯一的),记为 C(k),则 f(X)=k。
请对于 i=0,1,…,N,解决如下问题:
- 求所有长度在 1 到 M 之间且每个元素在 1 到 K 之间的正整数列 B 中,满足 f(B)=i 的序列个数,并对 998244353 取模。
给定 T 个测试用例,请分别求解。
什么是数列的字典序?假设 S=(S1,S2,…,S∣S∣),T=(T1,T2,…,T∣T∣)。若满足下列 1. 或 2. 中之一,则称 S 字典序小于 T。其中 ∣S∣,∣T∣ 表示 S,T 的长度。
- ∣S∣<∣T∣ 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)。
- 存在整数 1≤i≤min{∣S∣,∣T∣},使得以下两点都满足:
- (S1,S2,…,Si−1)=(T1,T2,…,Ti−1)
- Si 比 Ti (按数值)小。
输入格式
输入通过标准输入给出,格式如下:
T case1 ⋮ caseT
每个测试用例输入格式如下:
N M K A1 A2 … AN
输出格式
输出 T 行。第 t 行请输出对于 caset,i=0,1,…,N 的答案,按顺序用空格分隔。
输入输出样例
输入#1
4 2 1 3 2 3 3 2 4 3 1 2 5 7 100 23 38 19 78 97 12 66621153 962738384 596076187 241253251 294255618 160313007 362465084 613302073 172378047 202387723 783794852 575378463 266956797 649540193
输出#1
2 1 0 10 0 0 10 166591803 201113277 0 215366213 869870626 294965523 742219241 0 0 0 0 357811811 0 0 797772154 0 0 0 896363579
说明/提示
样例解释 1
对于第 1 个测试用例,枚举所有长度为 1,元素在 1 到 3 之间的正整数列 B,可以得到 C(i) 如下:
- B=(1) 时,C(0)=(1,2,3,0),C(1)=(2,1,3,1),C(2)=(2,3,1,2),因此 f(B)=0。
- B=(2) 时,C(0)=(2,2,3,0),C(1)=(2,2,3,1),C(2)=(2,3,2,2),因此 f(B)=0。
- B=(3) 时,C(0)=(3,2,3,0),C(1)=(2,3,3,1),C(2)=(2,3,3,2),因此 f(B)=1。
所以对于 i=0,1,2 的答案分别为 2,1,0。
数据范围
- 1≤T≤5×105
- 1≤N≤5×105
- 1≤M≤109
- 1≤K≤109
- 1≤Ai≤K
- 所有测试用例的 N 之和不超过 5×105
- 所有输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?