POJ2965,递归出来的!
来源:互联网 发布:大数据前沿技术及应用 编辑:程序博客网 时间:2024/04/27 22:53
这道题不难,有很多种实现的方法,然而在看了结题报告后,我就看懂了一种!这里贴出java代码仅供参考!
import java.util.Scanner;/* * 这一题大意如下: 一个冰箱上有4*4共16个开关,改变任意一个开关的状态(即开变成关,关变成开)时,此开关的同一行、同一列所有的开关都会自动改变状态。要想打开冰箱,要所有开关全部打开才行。 输入:一个4×4的矩阵,+表示关闭,-表示打开; 输出:使冰箱打开所需要执行的最少操作次数,以及所操作的开关坐标。+ 为关闭状态- 为打开状态求在4*4的棋盘中最快调整为 全部打开状态的最少步骤 并输出 要调整的坐标偶数次操作等于0 次操作 ,奇数次操作等于 1次操作所以 每个开关的操作次数为一次 * * */public class poj2965 {static boolean[][] visited = new boolean[4][4];static char[][] map;static int[] is=new int[16];static int[] js=new int[16];public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);String[] old = new String[4];for (int i = 0; i < old.length; i++) {old[i] = sc.nextLine();}map = new char[4][4];for (int i = 0; i < old.length; i++) {map[i] = old[i].toCharArray();}caozuo(map);int count = 0;for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (visited[i][j]) {is[count]=i+1;js[count]=j+1;count++;}}}System.out.println(count);for (int i = 0; i < count; i++) {System.out.println(is[i]+" "+js[i]);}}private static void sop(int[][] arr) {// TODO Auto-generated method stubfor (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {System.out.print(arr[i][j]);}System.out.println();}}private static void caozuo(char[][] map) {// TODO Auto-generated method stubfor (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {if (map[i][j] == '+') {visited[i][j] = !visited[i][j];for (int k = 0; k < 4; k++) {visited[i][k] = !visited[i][k];visited[k][j] = !visited[k][j];}}}}}}
0 0
- POJ2965,递归出来的!
- poj2965自己写的
- POJ2965
- poj2965
- poj2965
- POJ2965
- poj2965
- poj2965
- poj2965
- POJ2965
- POJ2965
- poj2965
- poj2965
- POJ2965
- POJ2965
- POJ2965
- poj2965
- POJ2965
- java异常体系2
- 第四次C++作业
- thinkphp等框架开发中容易忽略的xss攻击
- 跟我学AngularJs:Aop拦截实例
- 第八周项目3-指向学生类的指针
- POJ2965,递归出来的!
- Android开发平台搭建一般步骤[2016.4.28]
- LeetCode Gas Station
- sql行转列
- 提取出图像中感兴趣的部分,cvSetImageRoi已经过时,更牛逼Rect解决问题
- 使用httpclient提交数据
- Windows核心编程之线程终结
- leetcode-28. Implement strStr()
- 史上最牛的5次黑客攻击