<<问题描述:
给定的2个4*4方格阵列组成的图形A和B,每个方格的颜色为黑色或白色。方格阵列中有公共边的方格称为相邻方格。图形变换问题的每一步变化可以交换相邻方格的颜色。试设计一个算法,计算最少需要多少步变换,才能将图形A变换为图形B
<<编程任务:
对于给定的2个方格阵列,编程计算将图形A变换为图形B的最少变换次数。
<<数据输入:
由文件input.txt 给出输入数据。前4行是图形A的方格阵列,后四行是图形B的方格阵列。0表示白色,1表示黑色。
<<结果输出:
将计算出的最小变换次数和相应的变换序列输出到文件output.txt。第一行是最小变换次数。从第二行开始,每行用4个数表示一次变换,例如,1112表示交换方格(1,1)和(1,2)的颜色。问题无解时输出“No solution!”
图形A
图形B输入文件示例
Input.txt
1010
0100
0010
1010
0110
0001
0010
1010
输出文件示例
output
3
1112
2223
2324
用C++ C JAVA 都可以,很急,谢谢各位大虾啊~~~~~~~
给定的2个4*4方格阵列组成的图形A和B,每个方格的颜色为黑色或白色。方格阵列中有公共边的方格称为相邻方格。图形变换问题的每一步变化可以交换相邻方格的颜色。试设计一个算法,计算最少需要多少步变换,才能将图形A变换为图形B
<<编程任务:
对于给定的2个方格阵列,编程计算将图形A变换为图形B的最少变换次数。
<<数据输入:
由文件input.txt 给出输入数据。前4行是图形A的方格阵列,后四行是图形B的方格阵列。0表示白色,1表示黑色。
<<结果输出:
将计算出的最小变换次数和相应的变换序列输出到文件output.txt。第一行是最小变换次数。从第二行开始,每行用4个数表示一次变换,例如,1112表示交换方格(1,1)和(1,2)的颜色。问题无解时输出“No solution!”
图形A
图形B输入文件示例
Input.txt
1010
0100
0010
1010
0110
0001
0010
1010
输出文件示例
output
3
1112
2223
2324
用C++ C JAVA 都可以,很急,谢谢各位大虾啊~~~~~~~
解决方案 »
- 求10个数字可能的所有组合,只能用数组基本数据类型
- 急!java如何调用本地的reg(注册表导入文件)
- 如何改变JFileChooser文件选择对话框左上角的图标和字体大小?
- 多线程资料!
- 哪位能解释一下内部类用法的好处?
- 关于 Panel的理解
- 请各位仁兄谈谈对LayoutManager的感觉,以及现在对applet的应用多不多?
- 学了java语言后该怎么做呢?
- 关于import 的一个初级问题, 很急求助?
- UTF-8问题
- 麻烦各位大虾帮我分析下下面的代码,就是运行程序后在界面画了几条线,然后把它最小化后又最大化,怎么原先画的几条线没有重绘出来
- 5个java面试题。。。请高手给个答案。。。
重叠的点设为固定点.
对于不重叠的点,设其为移动点,可以挨个的找与其最近的移动点,移过来.
最近的点就是|行1-行2|+|列1-列二|最小的点.移动时路过固定点时,正在移动的点代替固定点,成为固定点,让固定点变为移动点继续前进.移到位后,移动点变为固定点.