#TCTM2515. 掀翻奶牛
0
掀翻奶牛
掀翻奶牛
题目描述
农夫约翰偶尔会遇到一些无聊的青少年来找麻烦,他们晚上偷偷潜入他的农庄,然后将他的牛掀翻在地。一天早上,睡醒的约翰发现这种事情又发生了----晚上,他的 头奶牛排列成 的矩阵在田地吃草,醒来后他发现,其中一些奶牛已经被掀翻了。
幸运的是,约翰用拖拉机和铲车的零件制作了一台机器----奶牛翻转机 。
使用该机器可以一下子翻转一大片的奶牛。
使用该机器时,先选定奶牛矩阵中的某个左上角子矩阵(即一个包含左上角奶牛的子矩阵),机器就可以翻转子矩阵内的所有奶牛。
不幸的是,由于机器是大范围无差别翻转,所以选中区域内的倒地奶牛会被扶起,而站立奶牛会被掀翻。
换句话说,该机器会切换选中子矩阵中所有奶牛的“状态”。
约翰认为,只要该机器的使用次数够多,就一定可以使得所有的奶牛都恢复到站立状态。
请你确定,至少需要使用该机器多少次,才能使得所有奶牛都处于站立状态。
注意,将该机器作用于同一子矩阵两次是没有意义的,因为这样不会对该矩阵的奶牛产生实际影响。
输入格式
第一行包含整数 $N$。接下来 行,每行包含一个长度为 的 字符串,表示奶牛矩阵,其中 表示一头站立的牛, 表示一头倒地的牛。
输出格式
输出使得所有奶牛都处于站立状态,所需要的奶牛翻转机 $3000$ 的最少使用次数。3
001
111
111
2
提示
#### 数据范围与提示 $1≤N≤10$ #### 样例解释 一种可行的方法是,先将机器作用于整个奶牛矩阵,奶牛的状态变为: ``` 110 000 000再将机器作用于左上方,只包含两个 1 的小矩阵,即可使所有奶牛处于站立状态。
<h2>来源</h2>
童程童美