费解的开关(下)

简介: 你玩过“拉灯”游戏吗?

微信截图_20220413200555.png

#include<bits/stdc++.h>
using namespace std;
const int N=5;
char g[N][N],backup[N][N]; 
int dx[5]={-1,0,1,0,0},dy[5]={0,1,0,-1,0};
void turn(int x,int y){
for(int i=0;i<5;i++){
  int a=x+dx[i],b=y+dy[i];
  if(a<0||a>=5||b<0||b>=5)continue;
  g[a][b]^=1;
} 
}
int main(){
int T;  
  cin>>T;
  while(T--){
  for(int i=0;i<5;i++)cin>>g[i];
  int res=10;
  for(int op=0;op<32;op++){
    memcpy(backup,g,sizeof g);
    int step=0;
    for(int i=0;i<5;i++){
      if(op>>i&1){
        step++;
        turn(0,i);
      }
    }
  for(int i=0;i<4;i++){
    for(int j=0;j<5;j++){
      if(g[i][j]=='0'){
        step++;
        turn(i+1,j);
      }
    }
  }
  bool dark=0;
  for(int i=0;i<5;i++){
    if(g[4][i]=='0'){
      dark=true;
      break;
    }
  }
      if(!dark)res=min(res,step);
      memcpy(g,backup,sizeof g);
  } 
  if(res>6)res=-1;
  cout<<res<<endl;
  }
  return 0;
}
相关文章
|
调度
MacBookPro外接显示器程序全屏状态,另一个显示器就黑屏
MacBookPro外接显示器程序全屏状态,另一个显示器就黑屏
717 0
MacBookPro外接显示器程序全屏状态,另一个显示器就黑屏
|
7月前
|
编译器 API C#
技术心得记录:深入分析C#键盘勾子(Hook)拦截器,屏蔽键盘活动的详解
技术心得记录:深入分析C#键盘勾子(Hook)拦截器,屏蔽键盘活动的详解
|
Windows
【笔记本解决触摸板手势失效的办法】
【笔记本解决触摸板手势失效的办法】
364 1
【笔记本解决触摸板手势失效的办法】
|
数据安全/隐私保护 iOS开发 芯片
将任意应用窗口置顶显示,这个工具太强了。
将任意应用窗口置顶显示,这个工具太强了。
费解的开关笔记
费解的开关笔记
73 0
费解的开关
费解的开关题解
145 0
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?
120 0
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?