题目难度:中阶 时间限制:2000ms 内存限制:256mb
给你一个N行M列的表格,表格上面每个格子都填上了 1 或 0。
当同一行或者同一列的某段连续格子都填了 1 的话,称这段连续的序列为优秀序列。
现在,你需要找出表格中存在的同时满足以下几个条件的 "L形图案":
· 图案由两段连续格子构成,这两段连续的格子都必须是优秀序列;
· 图案中两段优秀序列相互垂直;
· 有一个格子属于两段优秀序列共同的末端端点;
· 选取的优秀序列必须长度至少为2;
· 较长的优秀序列长度必须刚好为较短的优秀序列长度的2倍。
· 你需要统计出给定的表格中,有多少个这样的 "L形图案"。
以下是 "L形图案" 的两个正确示例:
以及三个错误示例:
第一行一个整数T, 表示共有T组数据
接下来的每组数据:
第1行两个整数N,M,对应表格的行数和列数
第2行~第N+1行,每行M个整数,表示表格中填写的数字
输出T行,每行对应一组数据的答案
输入数据
2
4 3
1 0 0
1 0 1
1 0 0
1 1 0
6 4
1 0 0 0
1 0 0 1
1 1 1 1
1 0 1 0
1 0 1 0
1 1 1 0
输出数据
1
9
样例一解释:
样例二解释:
样例二中有9个符合条件的 "L形图案"。
· 第1个: (1,1), (2,1), (3,1), (4,1), (5,1), (6,1), (6,2), (6,3)
· 第2个: (3,1), (4,1), (5,1), (6,1), (6,2)
· 第3个: (6,1), (5,1), (4,1), (3,1), (3,2)
· 第4个: (3,3), (4,3), (5,3), (6,3), (6,2)
· 第5个: (6,3), (5,3), (4,3), (3,3), (3,2)
· 第6个: (3,1), (3,2), (3,3), (3,4), (2,4)
· 第7个: (3,4), (3,3), (3,2), (3,1), (2,1)
· 第8个: (3,4), (3,3), (3,2), (3,1), (4,1)
· 第9个: (6,3), (5,3), (4,3), (3,3), (3,4)
给出前3个 "L形图案" 对应的示意图:
对于33%的数据,1<=N,M<=40;
对于66%的数据,1<=N,M<=100;
对于100%的数据,1<=N,M<=1000,1<=T<=10。
【相关推荐】