#2263. Cow Tipping
Cow Tipping
题目描述
农民约翰偶尔会遇到无聊的青少年,他们在晚上参观他的农场,并给他的奶牛小费。
一天早上,他醒来发现事情又发生了他的头奶牛开始在一个完美的方格排列中夜间放牧 ,但他发现其中 一些已经倾覆。
幸运的是,农民约翰用拖拉机和叉车的零件制造了一台很棒的机器,奶牛卸垛机,它可以一次翻转一大群奶牛,帮助他眷让所有的奶牛重新站起来。
他可以将机器应用于他的奶牛网格中的任何"左上矩形"一个包含左上奶牛的矩形子网格。
当他这样做时,机器翻转这个矩形中的每头奶牛,将倾斜的奶牛放回它们的脚上,但不幸的是,也翻转了已经站起来的奶牛!换句话说,机器"切换"矩形中每头奶牛的状态。
农民约翰认为,通过将他的机器多次应用到适当的矩形集合中,他最终可以将所有奶牛恢复到其正确的、未倾斜的状态。请帮助他确定执行此操作所需的机器的最小应用程序数。
请注意,将机器应用于同一个矩形两次是没有意义的,因为这对矩形中的奶牛没有净影响。
因此,您应该只考虑将机器应用于每个左上角的矩形,可能只应用一次。
输入格式
输入的第一行是整数。
后续行中的每一行都包含一个字符字符串,每个(表示上翘的奶牛)或(表示上翘的奶牛)。
输出格式
请输出农民约翰应用奶解吸器使其所有奶牛恢复站立所需的最小次数。
样例
输入样例
3
001
111
111
输出样例
2
提示
在本例中,如果将其机器应用于整个奶牛群(这是一个有效的左上角矩形),他将将其状态切换为以下状态:
110
000
000
剩下的就是将机器应用到左上角包含两个的矩形上,他就完成了。总共只有个应用程序。