#P6451. [COCI2008-2009#4] SLIKAR
[COCI2008-2009#4] SLIKAR
题目背景
Josip 是一个奇怪的画家。
题目描述
他想画一幅由 个像素点组成的画。其中 是 的幂次(如 )。每个像素点将会被着色为黑色或者白色。Josip 目前已经知道他的理想画作了。
他将按照如下步骤作画:
-
如果整幅画是一个像素点,那么他将依照自己的目标把这个像素点涂成黑色或者白色。
-
否则,他会将正方形分为四个更小的正方形,然后:
- 从中选择一个正方形全部涂成白色。
- 再从剩下的三个正方形中选择一个全部涂成黑色。
- 把剩下的两个正方形当成一幅新的画作,重复上述步骤。
很快他就发现把心目中的画作完完整整的画出来是不可能的。所以,他希望你来编写一个程序,使得画出的一幅画与他心目中的理想画作的差异尽量小。
两张画作之间的差异为颜色不同的像素点的数目。
输入格式
输入第一行为一个整数 ,表示画作的边长。
接下来的 行,每行 个为 或 的数字,表示理想状态当前像素点为黑色或者白色。
输出格式
输出第一行一个整数,表示最小的差异值。
接下来的 行,每行 个为 或 的数字,表示实际上当前像素的颜色。
注意:染色的方案可能有多种,输出任意一种即可,本题使用SPJ。
4
0001
0001
0011
1110
1
0001
0001
0011
1111
4
1111
1111
1111
1111
6
0011
0011
0111
1101
8
01010001
10100011
01010111
10101111
01010111
10100011
01010001
10100000
16
00000001
00000011
00000111
00001111
11110111
11110011
11110001
11110000
提示
数据规模与约定
- 对于 的数据,;
- 对于 的数据,。
说明
题目译自 COCI2008-2009 CONTEST #4 T4 SLIKAR。