说谎者
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
个同学排成一行进行一场游戏;
从左边数第 个人说:他左边有 个说谎者(不包括他们自己);
每个同学要么诚实,要么是说谎者;
没有两个说谎者站在一起;
诚实的同学总是说真话,说谎者可以说真话或谎言,因此他们的陈述可被认为是不可靠的。
你想要确定不同的合法情况数量,结果对 取模。
如果至少有一个同学在某种情况中是诚实的,而在另一个情况中是说谎者,则这两个情况视为不同。
输入格式
从 读入数据。
第一行两个整数 , 含义见题目描述, 为子任务编号,
接下来一行 个整数,描述 数组。
输出格式
输出答案到 。
输出一个整数表示不同合法情况的数量,对 取模。
样例
我们将用 来标记说谎者,用 来标记诚实的人。
3 4
0 1 2
1
唯一的可能是 $\color{grey}(\color{red}{0},\color{blue}{1},\color{red}{2}\color{grey})$
5 4
0 0 1 1 2
3
三种可能的情况分别是:$\color{grey}(\color{blue}{0},\color{blue}{0},\color{red}{1},\color{blue}{1},\color{red}{2} \color{grey})$, $\color{grey}(\color{blue}{0},\color{red}{0},\color{blue}{1},\color{red}{1},\color{blue}{2}\color{grey})$, $\color{grey}(\color{blue}{0},\color{red}{0},\color{blue}{1},\color{blue}{1},\color{red}{2}\color{grey})$
5 4
0 1 2 3 4
0
5 4
0 0 1 1 1
4
5 4
5 1 5 2 5
1
1 1
0
2
4 4
2 3 1 1
0
见下发文件
见下发文件
子任务与数据范围
对于所有数据,保证 ,
测评使用捆绑测试,本题不卡常,短时限是为了防止卡评测。
N/A | ||||
保证 的取值在 中独立均匀随机生成 | ||||
N/A | ||||