费解的开关笔记

简介: 费解的开关笔记

// 卡壳,括号处理出问题了,这里的括号把下面的部分全包住了;打代码慢一点,稳住细节,debug的时候也要检查一下括号问题(毕竟比较容易检查,可以优先检查)

// 根据操作判断是开关问题,然后影响上下左右中的开关操作的做法是枚举最开始的一行的操作,然后递推,最后验证
//  还要看输入与范围,输入没有空格,要用char,范围500,非常安全可以dp,floyd,n^3,dfs剪枝
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 6;
char f[N][N],backup[N][N];
int dx[] = {0,0,0,1,-1},dy[] = {0,1,-1,0,0};
void turn(int x,int y){
    for(int i = 0;i < 5;i++){
        int a = dx[i] + x;
        int b = dy[i] + y;
        if(a < 0 || a > 4 || b < 0 ||  b > 4) continue;
        f[a][b] ^= 1;
    }
}
int main(){
    int t;
    cin >> t;
    while(t--){
        for(int i = 0;i < 5;i++){
            for(int j = 0;j < 5;j++){
                cin >> f[i][j];
            }
        }
        memcpy(backup,f,sizeof f);
        int res = 0x3f3f3f3f;
        for(int op = 0;op < 1 << 5;op++){
            int step = 0;
            for(int i = 0;i < 5;i++){
                // 卡壳,括号处理出问题了,这里的括号把下面的部分全包住了;
                if(op >> i & 1){
                    turn(0,i);
                    step++;
                }
            }
                for(int i = 0;i < 4;i++){
                    for(int j = 0;j < 5;j++){
                        if(f[i][j] == '0'){
                            turn(i+1,j);
                            step++;
                        }
                    }
                }
                bool dark = false;
                for(int i = 0;i < 5;i++){
                    if(f[4][i] == '0') dark = true;
                }
                if(!dark) res = min(step,res);
                memcpy(f,backup,sizeof f);
        }
        if(res > 6) res = -1;
        cout << res << endl;
    }
}
目录
打赏
0
0
0
0
0
分享
相关文章
|
8月前
动态颤抖的眼睛效果404页面源码
动态颤抖的眼睛效果404页面源码, 源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
47 1
你以为键入网址后只是等待吗?惊!原来网页显示背后隐藏着这些奇妙步骤(终章)
这篇文章简要介绍了计算机网络中交换机和路由器的工作原理,以及它们在网络通信和连接中的重要作用。交换机利用MAC地址表实现数据包的转发,而路由器则根据IP地址进行转发决策,将数据包从一个网络转发到另一个网络。通过交换机和路由器的协同工作,网络实现了高效的数据传输和通信。
106 3
|
10月前
|
前端知识笔记(十三)———单全选框控制方法,炒鸡无敌方便!!!
前端知识笔记(十三)———单全选框控制方法,炒鸡无敌方便!!!
51 0
枚举时对数组操——三刷AcWing 95. 费解的开关
枚举时对数组操——三刷AcWing 95. 费解的开关
78 0
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?
129 0
程序人生 - 汽车后视镜锁车自动折叠为啥失灵?
费解的开关
费解的开关题解
152 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等