zoukankan      html  css  js  c++  java
  • poj2965

    #include <iostream>
    using namespace std;
    bool map[4][4];
    bool record[4][4];//自动初始化为0;
    int num;
    void init()
    {
     int i,j;
     char ch;
     for (i=0;i<4;i++)
     {
      for (j=0;j<4;j++)
      {
       cin>>ch;
       if (ch=='+')
       {
        map[i][j]=false;
       }
       else map[i][j]=true;
      }
     }
     //getchar();
    }

    bool jianc()
    {
     int i,j;
     num=0;
     for (i=0;i<4;i++)
      for (j=0;j<4;j++)
        if(map[i][j])
        num++;
     if (num==16)
      return true;
     else
      return false;
    }
    void output()
    {
     int i,j;
     for (i=0;i<4;i++)
     {
      for (j=0;j<4;j++)
      {
       if(record[i][j])
        cout<<i+1<<' '<<j+1<<endl;
      }
     }
    }
    void press(int ii,int jj)
    {
     record[ii][jj]=!record[ii][jj];
     int i;
     map[ii][jj]=!map[ii][jj];
     for(i=0;i<4;i++)
     {
      map[ii][i]=!map[ii][i];
            map[i][jj]=!map[i][jj];

     }
    }
    void dfs(int t,int step)
    {
     if(jianc())//打开了就输出
     {
      cout<<step<<endl;
      output();
      exit(0);
      return;
     }
     if(t>=16) return;
     dfs(t+1,step);
     press(t/4,t%4);
     step++;
     dfs(t+1,step);
     press(t/4,t%4);
     step--;
    }   
    int main()
    {
     init();
     dfs(0,0);
     return 0;
    }

  • 相关阅读:
    153. Find Minimum in Rotated Sorted Array
    228. Summary Ranges
    665. Non-decreasing Array
    661. Image Smoother
    643. Maximum Average Subarray I
    4.7作业
    面向对象编程
    常用模块3
    3.31作业
    常用模块2
  • 原文地址:https://www.cnblogs.com/qijinbiao/p/2181749.html
Copyright © 2011-2022 走看看