题目 1783

矩阵填数

查看题解 ↗GitHub ↗如何评测
题号
1783
时间限制
2000 ms
内存限制
512 MB
标签
动态规划
来源
信息学奥赛一本通 · 高手训练篇·五、动态规划(高手训练)

【题目描述】

给定一个h×wh×w的矩阵,矩阵的行编号从上到下依次为1∼h1\sim h,列编号从左到右依次1∼w1\sim w。 在这个矩阵中你需要在每个格子中填入1∼m1\sim m中的某个数。 给这个矩阵填数的时候有一些限制,给定nn个该矩阵的子矩阵,以及该子矩阵的最大值vv,要求你所填的方案满足该子矩阵的最大值为vv。 现在,你的任务是求出有多少种填数的方案满足nn个限制。 两种方案是不一样的当且仅当两个方案至少存在一个格子上有不同的数。由于答案可能很大,你只需要输出答案 mod 1000000007\bmod 1000000007。

【输入】

输入数据的第一行为一个数 TT,表示数据组数。 对于每组数据,第一行为四个数h,w,m,nh,w,m,n。 接下来nn行,每一行描述一个子矩阵的最大值vv。 每行为五个整数x1,y1,x2,y2,vx_1,y_1,x_2,y_2,v,表示一个左上角为(x1,y1x_1,y_1),右下角为(x2,y2x_2,y_2)的子矩阵的最大值为vv,其中1≤x1≤x2≤h,1≤y1≤y2≤w1≤x_1≤x_2≤h,1≤y_1≤y_2≤w。

【输出】

对于每组数据输出一行,表示填数方案  mod 1000000007\bmod 1000000007后的值。

【输入样例】

文本
2 
3 3 2 2 
1 1 2 2 2 
2 2 3 3 1 
4 4 4 4 
1 1 2 3 3 
2 3 4 4 2 
2 1 4 3 2 
1 2 3 4 4

【输出样例】

文本
28 
76475

【提示】

【数据规模】 对于20%的数据:n≤2n≤2。 另有20%的数据:1≤h,w≤501≤h,w≤50。
对于100%的数据:T≤5,1≤h,w,m≤10000,1≤v≤m,1≤n≤10T≤5,1≤h,w,m≤10000,1≤v≤m,1≤n≤10。

数据下载

题目 1783 的公开数据

正在读取文件列表…

常用命令

题目 1783 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。