#P11681. [Algo Beat Contest 001 C] Creating a Queue

[Algo Beat Contest 001 C] Creating a Queue

题目背景

Problem Score Idea Std Data Check Solution
C - Creating a Queue\text{C - Creating a Queue} 400400 joe_zxq fanchuanyu & joe_zxq joe_zxq remmymilkyway Link by joe_zxq

题目描述

给定一个长度为 NN 的非负整数序列 AA

现在你需要用 1M1\sim M 之间的正整数替换所有序列 AA 中的 00,使得对于其中的任何一段长度大于等于 22 的子数组,不能存在唯一众数。

子数组:在一个数组中,选择一些连续的元素组成的新数组。

唯一众数:众数指的是一个数字序列中出现次数最多的元素。如果一个数字序列众数只有一个,我们称这个序列有唯一众数。

求有多少种不同方案,答案对 11451419231145141923 取模。两种方案称为不同,当且仅当替换后的序列至少有一位上的数不同。

输入格式

第一行包含两个正整数 NNMM,表示序列的长度和替换数的最大限度。

第二行包含 NN 个非负整数,表示序列 AA 的元素。

输出格式

一行一个非负整数,表示方案的数量,答案对 11451419231145141923 取模。

2 3
1 0
2
4 1046
114 514 191 981
1

提示

样例解释 #1

22 个满足条件的序列,分别为 {1,2}\{1,2\}{1,3}\{1,3\}

样例解释 #2

序列已经完全固定,本身就是一种合法的序列,于是答案为 11

数据范围

对于 100%100\% 的数据,保证 1N1061 \le N \le 10^61M1091 \le M \le 10^90AiM0 \le A_i \le M