返回小组 开始 2019-10-20 08:30:00

201910月中赛(提高组)

结束 2019-10-20 12:30:00
Contest is over.
当前 2024-09-20 05:47:10

D. 魔法环流

描述

在遥远的霍格沃兹,有一堵已经荒废了很多年的城墙,现在他们决定拆除它。工匠们本来想用炸药把这堵墙直接炸开,但是这样会使得整个霍格沃兹如同世界末日来临一般的震动。哈利波特认为把砖一块一块地卸下来是个不错的方法,但是砖与砖之间连接得异常紧密。于是,如何拆掉它便成了一个棘手的问题。聪明的魔法师哈利波特带领他的学徒魔法师们彻底研究了这一堵墙,他们发现了这堵墙精妙的内部结构。墙内每块砖与其相邻的砖之间由魔法能量连接起来的,连接砖与砖之间的魔法能量是有极性的,发射方向总是从正极指向负极。墙的内部存在着若干个魔法环流。所谓魔法环流,就是指在由多块砖组成的一个系统中,从每一块砖沿着魔法能量极性的发射方向出发,在该系统中进行若干次传递以后,都能够回到这块砖来。他们发现拆砖的时候,只有把所有的魔法环流都破坏掉,才能取下砖。

例如下面的图,这是哈利波特带回实验室进行进一步研究的一个模型。

15714684225189.png

在这个模型中,有 2*4=8 块砖,相邻的砖之间已经用箭头标出了魔法能量极性的方向,由正极指向负极。经过分析不难发现,这个结构中存在着{1,2,6,5},{3,4}两个极大魔法环流(再也加不进去另外一块砖使其仍为魔法环流)。当然{1,5}也是一个魔法环流,但是它不是极大的,因为它是环流{1,2,6,5}的一个子环流。霍格沃兹的魔法师们采纳了哈利波特的方案,尽管如此,实际执行工作的工匠们还是无法理解。他们请你来帮助编写一个程序,在动工前算出这堵墙中存在的极大魔法环流的个数。 

输入

输入数据有若干行;

第 1 行,两个整数N、M,表示这堵墙由N行,M列块砖组合起来。 

2-N+1行,第i行有M个整数,第j个整数P_{ij}表示这块砖的状态。P_{ij}为一个小于 16 的 非负整数,把它转化为二进制以后,每个二进制位表示这块砖是否向一个方向发出极性魔法能量。二进制数从左到右第 1 位为上,第 2 为下,第 3 位为左,第 4 位为右,1 表示发射,0 表示没有。状态转换如下表:

15714685444775.png

输出

输出数据为一行一个整数,代表极大魔法环流的个数。

样例

输入

2 4
5 5 1 2
8 2 3 0 

输出

2

提示

数据规模

1\leq N,M\leq 100


Submit

登录

注册
时间限制 1 秒
内存限制 128 MB
提交