1124 : 积木玩具
时间限制Time Limit
10
秒Sec
内存限制Memory Limit
256
兆MB
提交次数Submitted
3 次Times
通过次数Solved
3 次Times
标准评测 Standard
从标准输入读入,结果写到标准输出。评测将输出拆成 token,与标准答案逐项比较,不按整段逐字节比对。
Read from standard input and write to standard output. The judge splits the output into tokens and compares them with the official answer; it does not compare raw bytes.
| 比对Compare | token 相同即通过。中间的空格、制表符、换行可多可少。Matching tokens pass. Extra spaces, tabs, or newlines between them are ignored. |
|---|---|
| 不同则错Differs | token 个数或内容不同即错误。23 与 2 3、02 与 2、2.0 与 2 均视为不同。A different token count or value is wrong. 23 vs 2 3, 02 vs 2, and 2.0 vs 2 all differ. |
| 输入Input | 标准输入,格式见题面。Standard input; format as in the statement. |
| 输出Output | 标准输出。Standard output. |
题目描述Description
你想在一个长方形棋盘上放一些等大的正方体积木块,搭成一个玩具。玩具的形状可以用一个“高度矩阵”来描述。比如下面的矩阵表示棋盘中心格子的上方的高度为 4,而其他位置的高度为 1。
-- -- --
| 1| 1| 1|
-- -- --
| 1| 4| 1|
-- -- --
| 1| 1| 1|
-- -- --你有足够多的 1*1 和 1*2 积木块,所以可以搭出很多种不同的玩具。比如下图展示了一种可能的方案,其中字母表示单位正方体,相同字母代表同一个木块。
E
AAB E
DEB F
DCC DCC
(a) 顶视图 (b) 正视图如果至少用了一个 1*1 木块,这个积木成为普通玩具,否则称为高级玩具。
输入一个高度矩阵,你的任务是统计出有多少种不同的普通玩具和高级玩具。
输入格式Input
输入包含不超过 20 组数据。每组数据第一行为两个正整数 R, C (1 ≤ R * C ≤ 16),即棋盘的行数和列数。以下 R 行每行 C 个整数,表示各个格子的高度 h(i,j). (0 ≤ h(i, j) ≤ 20)
输出格式Output
对于每组数据,输出测试点编号,普通玩具的个数和高级玩具的个数。因为答案可能很大,只需输出这两个值除以 109 + 7 的余数。
样例Sample
出题Author
SRbGa