⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2811.cpp

📁 poj的几道题
💻 CPP
字号:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
 int m,yuan[5][6],a;
 cin>>m;
 a=m;
 while(m--)
 {
   int gai[5][6]={0},zhuangtai[5][6];   
   int i,j,tag=0,t,k; 
   for(i=0;i<=4;i++)
       for(j=0;j<=5;j++)
           cin>>yuan[i][j]; 
   gai[0][0]=-1;
   for(i=0;i<64;i++)
   {
     for(k=0;k<=4;k++)
       for(j=0;j<=5;j++)
         zhuangtai[k][j]=yuan[k][j];  
     gai[0][0]+=1;
     tag=gai[0][0]/2;
     gai[0][0]%=2;
     t=1;
     while(tag!=0)
     {
        gai[0][t]+=tag;
        tag=gai[0][t]/2;
        gai[0][t]%=2;
        t++;             
     }  
     for(k=0;k<=5;k++)
       if(gai[0][k]==1&&k==0)  
          {
               zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
               zhuangtai[0][k+1]=abs(zhuangtai[0][k+1]-1);
               zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
          }
       else if(gai[0][k]==1&&k==5)
            {
               zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
               zhuangtai[0][k-1]=abs(zhuangtai[0][k-1]-1);
               zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
            }                      
       else if(gai[0][k]==1)
            {
               zhuangtai[0][k]=abs(zhuangtai[0][k]-1);
               zhuangtai[0][k+1]=abs(zhuangtai[0][k+1]-1);
               zhuangtai[0][k-1]=abs(zhuangtai[0][k-1]-1);
               zhuangtai[1][k]=abs(zhuangtai[1][k]-1);
            }                             
     for(j=1;j<=3;j++)
       { 
          for(k=0;k<=5;k++)
               {gai[j][k]=zhuangtai[j-1][k];if(zhuangtai[j-1][k]==1) zhuangtai[j-1][k]=0;}               
          for(k=0;k<=5;k++)
               if(gai[j][k]==1&&k==0)  
                {
                   zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
                   zhuangtai[j][k+1]=abs(zhuangtai[j][k+1]-1);
                   zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
                }
                else if(gai[j][k]==1&&k==5)
                {
                    zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
                    zhuangtai[j][k-1]=abs(zhuangtai[j][k-1]-1);
                    zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
                 }                      
                 else if(gai[j][k]==1)
                 {
                    zhuangtai[j][k]=abs(zhuangtai[j][k]-1);
                    zhuangtai[j][k+1]=abs(zhuangtai[j][k+1]-1);
                    zhuangtai[j][k-1]=abs(zhuangtai[j][k-1]-1);
                    zhuangtai[j+1][k]=abs(zhuangtai[j+1][k]-1);
                 }                   
         }
      for(k=0;k<=5;k++)
         { gai[4][k]=zhuangtai[3][k];if(zhuangtai[3][k]==1) zhuangtai[3][k]=0;}              
      for(k=0;k<=5;k++)
          if(gai[4][k]==1&&k==0)  
                {
                   zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
                   zhuangtai[4][k+1]=abs(zhuangtai[4][k+1]-1);
                }
          else if(gai[4][k]==1&&k==5)
                {
                    zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
                    zhuangtai[4][k-1]=abs(zhuangtai[4][k-1]-1);
                 }                      
          else if(gai[j][k]==1)
                 {
                    zhuangtai[4][k]=abs(zhuangtai[4][k]-1);
                    zhuangtai[4][k+1]=abs(zhuangtai[4][k+1]-1);
                    zhuangtai[4][k-1]=abs(zhuangtai[4][k-1]-1);
                 }
       for(k=0;k<=5;k++)
          if(zhuangtai[4][k]!=0) break;
       if(k==6)  
          { 
            cout<<"PUZZLE #"<<a-m<<endl;
            for(j=0;j<=4;j++)
              {
                 for(k=0;k<5;k++) cout<<gai[j][k]<<" ";
                 cout<<gai[j][k]<<endl;           
              }
            break;   
          }                         
   } 
     

 }

return 0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -