CF1129D.Isolation
省选/NOI-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Find the number of ways to divide an array a of n integers into any number of disjoint non-empty segments so that, in each segment, there exist at most k distinct integers that appear exactly once.
Since the answer can be large, find it modulo 998244353.
求将包含 n 个整数的数组 a 划分为任意数量个互不相交的非空段的方法数,使得在每一段中,恰好出现一次的不同整数的个数至多为 k。
由于答案可能很大,请对 998244353 取模。
输入格式
The first line contains two space-separated integers n and k (1≤k≤n≤105) — the number of elements in the array a and the restriction from the statement.
The following line contains n space-separated integers a1,a2,…,an (1≤ai≤n) — elements of the array a.
第一行包含两个以空格分隔的整数 n 和 k(1≤k≤n≤105)—— 分别表示数组 a 的元素个数以及题目中所述的限制条件。
接下来一行包含 n 个以空格分隔的整数 a1,a2,…,an(1≤ai≤n)—— 数组 a 的元素。
输出格式
The first and only line contains the number of ways to divide an array a modulo 998244353.
第一行且唯一一行包含将数组 a 划分的方法数对 998244353 取模的结果。
输入输出样例
输入#1
3 1 1 1 2
输出#1
3
输入#2
5 2 1 1 2 1 3
输出#2
14
输入#3
5 5 1 2 3 4 5
输出#3
16
说明/提示
In the first sample, the three possible divisions are as follows.
- [[1],[1],[2]]
- [[1,1],[2]]
- [[1,1,2]]
Division [[1],[1,2]] is not possible because two distinct integers appear exactly once in the second segment [1,2].
在第一个样例中,三种可能的划分方式如下:
- [[1],[1],[2]]
- [[1,1],[2]]
- [[1,1,2]]
划分 [[1],[1,2]] 是不可行的,因为在第二个子段 [1,2] 中恰好出现了两个不同的整数。
输入解题思路,AI测评打分。不知道怎么写?