#include<bits/stdc++.h>#defineDEBUGfprintf(stderr,"Passing [%s] line %d\n", __FUNCTION__,__LINE__)#defineitnint#definegIgiusingnamespace std;typedeflonglong LL;typedef pair <int,int> PII;typedef pair <int, PII> PIII;inlineintgi(){int f =1, x =0;char c =getchar();while(c <'0'|| c >'9'){if(c =='-') f =-1; c =getchar();}while(c >='0'&& c <='9') x = x *10+ c -'0', c =getchar();return f * x;}inline LL gl(){
LL f =1, x =0;char c =getchar();while(c <'0'|| c >'9'){if(c =='-') f =-1; c =getchar();}while(c >='0'&& c <='9') x = x *10+ c -'0', c =getchar();return f * x;}constint dx[]={0,-1,0,1,0}, dy[]={0,0,1,0,-1};//定义常量数组表示当前要翻转的灯及它上下左右的位置int n, m;char g[7][7];inlinevoidget(int x,int y)//摁下第 x 行 y 列的灯{for(int i =0; i <5; i+=1)//将它本身及四周的灯翻转状态{int xx = x + dx[i], yy = y + dy[i];if(xx >=0&& xx <=4&& yy >=0&& yy <=4)//在界内{//进行翻转if(g[xx][yy]=='1') g[xx][yy]='0';else g[xx][yy]='1';}}}inlineintgetans()//求答案{int ans =66666666;for(int k =0; k <(1<<5); k+=1)//枚举每一种第一行的操作状态{int sum =0;//操作的总数char bf[7][7];memcpy(bf, g,sizeof g);//先将初始状态备份for(int j =0; j <5; j+=1){if(k >> j &1)//如果第 j 号灯需要翻转{++sum;//操作一次get(0, j);//将第 j 号灯翻转}}for(int i =0; i <4; i+=1)//递推出下一行的状态{for(int j =0; j <5; j+=1)//枚举第 i 行的每一盏灯{if(g[i][j]=='0')//如果这个灯需要被翻转{++sum;get(i +1, j);//将它下一排的灯翻转}}}bool ok =true;for(int j =0; j <5; j+=1){if(g[4][j]=='0'){ok =false;break;}//没有达到目标状态}if(ok) ans =min(ans, sum);//记录最少步数memcpy(g, bf,sizeof g);//还原备份}if(ans >6)return-1;//不能在 6 步以内达到目标状态return ans;//返回答案}intmain(){//freopen(".in", "r", stdin);//freopen(".out", "w", stdout);int t =gi();//多组数据输入数据总数while(t--){for(int i =0; i <5; i+=1)scanf("%s", g[i]);//输入每一行的状态printf("%d\n",getans());//输出答案}return0;}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?