CF1178F2.Long Colorful Strip
省选/NOI-
通过率:0%
时间限制:6.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
This is the second subtask of problem F. The only differences between this and the first subtask are the constraints on the value of m and the time limit. It is sufficient to solve this subtask in order to hack it, but you need to solve both subtasks in order to hack the first one.
There are n+1 distinct colours in the universe, numbered 0 through n. There is a strip of paper m centimetres long initially painted with colour 0.
Alice took a brush and painted the strip using the following process. For each i from 1 to n, in this order, she picks two integers 0≤ai<bi≤m, such that the segment [ai,bi] is currently painted with a single colour, and repaints it with colour i.
Alice chose the segments in such a way that each centimetre is now painted in some colour other than 0. Formally, the segment [i−1,i] is painted with colour ci (ci=0). Every colour other than 0 is visible on the strip.
Count the number of different pairs of sequences aii=1n, bii=1n that result in this configuration.
Since this number may be large, output it modulo 998244353.
这是问题 F 的第二个子任务。与第一个子任务唯一的区别在于对 m 的约束条件以及时间限制。仅解决该子任务即可对其进行 hack;但若要 hack 第一个子任务,则必须同时解决两个子任务。
宇宙中一共有 n+1 种互不相同的颜色,编号为 0 到 n。有一条长度为 m 厘米的纸带,初始时整条纸带均被涂成颜色 0。
爱丽丝拿起画笔,按如下过程对纸带进行涂色:对每个 i 从 1 到 n(按此顺序),她选取两个整数 0≤ai<bi≤m,使得当前区间 [ai,bi] 上的所有位置均被涂成同一种颜色,并将整个区间 [ai,bi] 重新涂成颜色 i。
爱丽丝所选的区间满足:纸带上每一厘米长的单位区间现在均被涂成了非 0 的颜色。形式化地,单位区间 [i−1,i](其中 i=1,2,…,m)被涂成颜色 ci,且满足 ci=0。此外,除颜色 0 外,其余每种颜色在纸带上均至少出现一次。
请计算能产生上述最终涂色配置的不同序列对 {ai}i=1n、{bi}i=1n 的个数。
由于该数目可能很大,请输出其对 998244353 取模的结果。
输入格式
The first line contains a two integers n, m (1≤n≤500, n≤m≤106) — the number of colours excluding the colour 0 and the length of the paper, respectively.
The second line contains m space separated integers c1,c2,…,cm (1≤ci≤n) — the colour visible on the segment [i−1,i] after the process ends. It is guaranteed that for all j between 1 and n there is an index k such that ck=j.
第一行包含两个整数 n 和 m(1≤n≤500,n≤m≤106),分别表示除颜色 0 外的颜色种数以及纸带的长度。
第二行包含 m 个用空格分隔的整数 c1,c2,…,cm(1≤ci≤n),表示过程结束后区间 [i−1,i] 上可见的颜色。保证对每个 j(1≤j≤n),均存在下标 k 使得 ck=j。
输出格式
Output a single integer — the number of ways Alice can perform the painting, modulo 998244353.
输出一个整数——Alice 执行该涂色操作的方案数,对 998244353 取模。
输入输出样例
输入#1
3 3 1 2 3
输出#1
5
输入#2
2 3 1 2 1
输出#2
1
输入#3
2 3 2 1 2
输出#3
0
输入#4
7 7 4 5 1 6 2 3 7
输出#4
165
输入#5
8 17 1 3 2 2 7 8 2 5 5 4 4 4 1 1 6 1 1
输出#5
20
说明/提示
In the first example, there are 5 ways, all depicted in the figure below. Here, 0 is white, 1 is red, 2 is green and 3 is blue.

Below is an example of a painting process that is not valid, as in the second step the segment 1 3 is not single colour, and thus may not be repainted with colour 2.

In the second example, Alice must first paint segment 0 3 with colour 1 and then segment 1 2 with colour 2.
在第一个例子中,共有 5 种方式,全部如下面的图所示。其中,0 表示白色,1 表示红色,2 表示绿色,3 表示蓝色。

下面是不合法的涂色过程的一个例子:在第二步中,区间 1 3 并非单色,因此不能被重涂为颜色 2。

在第二个例子中,Alice 必须首先将区间 0 3 涂成颜色 1,然后将区间 1 2 涂成颜色 2。
输入解题思路,AI测评打分。不知道怎么写?