问题1571--用若干个回路覆盖有障碍物的棋盘(hdu Eat the Trees_hdu1693)

1571: 用若干个回路覆盖有障碍物的棋盘(hdu Eat the Trees_hdu1693)

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

我们大多数人都知道,在名为Dota(古代防御)的游戏中,Pudge是游戏第一阶段的一个强大英雄。然而,当游戏结束时,帕奇不再是一个强大的英雄了。
所以普吉的队友给他一个新任务吃树!
树的大小是一个长方形的n*m单元格,每个单元格要么只有一棵树,要么什么都没有。普吉需要做的是吃掉细胞里所有的树。
Pudge必须遵循以下几条规则:
帕奇必须通过选择一个回路来吃这些树,然后他将吃所有在所选回路中的树。
二。不包含树的单元是不可访问的,例如,通过Pudge选择的电路的每个单元必须包含树,当选择电路时,电路上单元中的树将消失。
帕奇可以选择一个或多个回路来吃树。
普吉有个问题,有多少种方法可以吃这些树?
下图给出了n=6和m=3的三个样本(灰色方框表示单元中没有树,粗体黑线表示所选电路)


输入

输入由几个测试用例组成。输入的第一行是案例数。不超过10个病例。
对于每种情况,第一行包含整数n和m,1<=n,m<=11。接下来的n行中的每一行都包含由空格分隔的m个数字(0或1)。数字0表示没有树的单元,数字1表示只有一棵树的单元。

输出

对于每种情况,您应该在一行中打印所需的方法数。保证不超过263_-1。使用示例中的格式。

样例输入

2 6 3 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 2 4 1 1 1 1 1 1 1 1

样例输出

案例一:吃树有三种方式。

案例二:吃树有两种方法。

来源/分类


[提交] [状态]