#P4019. 多边形染色

多边形染色

题目描述

Flokirie 有一个美丽的凸 nn 边形,顶点编号为 11nn,每条边连接顶点 iii+1i+1。特别的,顶点 nn 与顶点 11 相连

他想把每个顶点都染成某一种颜色 k(kc)k(k \le c),且相邻顶点颜色不能相同。

他想知道所有可行方案共有多少。于是他在纸上算了算,55 分钟就解决了这题。

于是他觉得太 low 了,便定义了以下骚操作。

  1. 1 x p:表示第 xx 个顶点必须染颜色 pp

  2. 2 x p:表示第 xx 个顶点必须不染颜色 pp

  3. 3 x y:表示更改第 xx 个顶点与第 yy 个顶点之间边的属性(保证 y=x±1y=x±1,且 x,y1,nx,y≠1,n),即第 xx 个顶点必须与第 yy 个顶点颜色相同。

现在,他想知道所有可行的方案共有多少种。由于结果可能过大,你只需输出它对 987654321987654321 取模的结果即可。

输入格式

第一行,三个正整数 nnmmcc,表示多边形边数、操作个数、颜色个数。

之后 mm 行,每行三个正整数表示一个操作,具体意义见题目描述。

输出格式

一行一个整数,为所有可行操作和模上 987654321987654321 的结果。

3 0 3
6
5 2 5
2 3 4
3 2 3
208

提示

测试点编号 nn mm cc
121\sim 2 3n103\le n\le 10 0m100\le m\le 10 1c51\le c\le 5
343\sim 4 3n1003\le n\le 100 0m300\le m\le 30 1c81\le c\le 8
55 3n2×1033\le n\le 2\times 10^3 m=0m=0 1c101\le c\le 10
66 0m1000\le m\le 100
77 3n5×1043\le n\le 5\times 10^4 m=0m=0
88 0m5000\le m\le500
9109\sim 10 0m1030\le m\le10^3

保证对于 100%100\% 的数据,3n5×104,0m103,1c103\le n\le 5\times 10^4,0\le m\le10^3, 1\le c\le10