2557: 漂亮的图像
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:1
题目描述
Jzj某次出去郊游,沿路捡了N块小木板(不知道jzj想干什么……)
Jzj回了家后,把这些小木板砍成了相同的长度,这样jzj就有了N块长度相同的长条木板啦~ Jzj把每块木板分成了N个小单元,在这N*N个小单元上选了一些涂成了黑色。不过这样涂完了以后,jzj发现把这N块小木板摆在一起实在是太丑了,东一块黑西一块白的,所以jzj想交换其中的一些木板,把这些木板排的漂亮一点。
怎么排才漂亮呢?jzj想了半天,最后觉得让所有的黑色小单元都尽量聚集在一起比较好,所以他想让最后重新排列的木板的所有的黑色单元都聚集在左下角的三角形里,也就是在以(1,1)(2,2)……(N,N)这条对角线以下的三角形区域里(可以包含对角线)。
由于jzj也是和yk一样不喜欢动的人,所以他想用最少的次数将原来的N个木板排成满足要求的样子,每一次操作可以交换N块木板中任意两个相邻的木板。
输入
第一行一个正整数N,表示木板数量。
下面N行,每行N个数0或1。第i+1行描述第i块木板的染色信息,第j列的数为0,表示这个单元为白色,为1表示这个单元为黑色。
输出
一行一个整数,表示最少的操作次数是原图像变为漂亮图像。
样例输入 复制
3
111
110
100
样例输出 复制
3
提示
【样例解释】
唯一一种合法的最终图形为
100
110
111
显然不论如何交换相邻两行,步骤数不会低于3步。
【数据规模】
对于40%的数据满足 1≤N≤8
对于100%的数据满足 1≤N≤40