CF1725C Circular Mirror

题目描述

Pak Chanek 有一面圆形的镜子。镜子的圆周上有 $N$ 盏灯,顺时针编号为 $1$ 到 $N$。从第 $i$ 盏灯到第 $i+1$ 盏灯的弧长为 $D_i$,其中 $1 \leq i \leq N-1$。而第 $N$ 盏灯到第 $1$ 盏灯之间的弧长为 $D_N$。 Pak Chanek 想用 $M$ 种不同的颜色给这些灯染色。每盏灯可以被染成 $M$ 种颜色中的一种。但是,不允许存在三盏不同的灯,使得这三盏灯的颜色相同,并且以这三盏灯为顶点所构成的三角形是直角三角形(即其中一个角恰好为 $90$ 度)。 以下是圆镜上灯的染色配置示例。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1725C/f662b018d5c25548ad3c12ebf7297c4fe9cddb27.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1725C/d15118feff1296e48df6066dea2761fdbf3bbba3.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1725C/904b8c54d18751fcd9444e012c7c141ddaf812b7.png) 图 1:一个错误的染色示例,因为第 $1$、$2$、$3$ 盏灯构成了一个直角三角形。 图 2:一个正确的染色示例。 图 3:一个正确的染色示例。 在给灯染色之前,Pak Chanek 想知道他可以进行多少种不同的合法染色方案。请计算不同的合法灯染色方案数,答案对 $998\,244\,353$ 取模。

输入格式

第一行包含两个整数 $N$ 和 $M$($1 \leq N \leq 3 \cdot 10^5$,$2 \leq M \leq 3 \cdot 10^5$),分别表示镜子上的灯数和可用的不同颜色数。 第二行包含 $N$ 个整数 $D_1, D_2, \ldots, D_N$($1 \leq D_i \leq 10^9$),表示镜子上相邻两盏灯之间的弧长。

输出格式

输出一个整数,表示可能的合法灯染色方案数,对 $998\,244\,353$ 取模。

说明/提示

在第一个样例中,所有合法的灯染色方案为 $[1, 1, 2, 1]$、$[1, 1, 2, 2]$、$[1, 2, 1, 2]$、$[1, 2, 2, 1]$、$[1, 2, 2, 2]$、$[2, 1, 1, 1]$、$[2, 1, 1, 2]$、$[2, 1, 2, 1]$、$[2, 2, 1, 1]$ 和 $[2, 2, 1, 2]$。 由 ChatGPT 4.1 翻译