题号:NC50813
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
给定

的格点图。其中一些结点有着已知的颜色,其余的结点还没有被染色。一个合法的染色方案不允许相邻结点有相同的染色。
现在一共有c种不同的颜色,依次记为1到c。请问有多少对未染色结点的合法染色方案?
输入描述:
第一行有两个整数n和c,分别描述了格点图的大小和总的颜色个数。
之后两行,每行有n个整数:如果是0则表示对应结点未被染色,否则一定是一个1到c的整数表示对应结点已经染了某一种颜色。
输出描述:
输出一个整数,为总的染色方案数对
取模后的值。
示例3
输入
复制
10 13
0 2 0 0 1 0 2 0 0 3
0 1 0 1 0 0 0 0 4 0
备注:
子任务1(44分):1≤n≤10000且5≤c≤10000;不存在一列有2个已染色结点;被染色结点全部位于第一行;第一列和最后一列均有结点已被染色。
子任务2(32分):1≤n≤10000且5≤c≤10000;不存在一列有2个已染色结点;第一列和最后一列均有结点已被染色。
子任务3(12分):1≤n≤10000且5≤c≤10000;第一列和最后一列均有结点已被染色。
子任务4(8分):1≤n≤10000且5≤c≤10000。
子任务5(4分):1≤n≤100000且5≤c≤100000。