zoukankan      html  css  js  c++  java
  • 2304: Lights Out(枚举)

    枚举第一行所有可能的的情况

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int map[6][7],maze[6][7],ans[6][7];
    int dir[5][2]={0,0,1,0,0,1,0,-1,-1,0};
    void press(int i,int j)
    {
        int x,y;
        for(int k=0;k<5;k++)
        {
            x=i+dir[k][0];
            y=j+dir[k][1];
            if(x>=1&&x<=5&&y>=1&&y<=6)
                maze[x][y]=!maze[x][y];
        }
        
    }
    void example()
    {
        for(int i=1;i<=64;i++)
        {
            memset(ans,0,sizeof(ans));
            memcpy(maze, map, sizeof(map));
            int t=i;
            for(int j=6;j>=1;j--)
                ans[1][j]=t&1,t>>=1;
            for(int j=1;j<=6;j++)
                if(ans[1][j])
                    press(1,j);
            for(int row=2;row<=5;row++)
                for(int j=1;j<=6;j++)
                    if(maze[row-1][j])
                        press(row,j),ans[row][j]=1;
            int flag=1;
            for(int j=1;j<=6;j++)
                if(maze[5][j])
                {flag=0;break;}
            if(flag)
                return ;
        }
    }
    int main ()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            for(int i=1;i<=5;i++)
                for(int j=1;j<=6;j++)
                    cin>>map[i][j];
            example();
            for(int i=1;i<=5;i++){
                for(int j=1;j<=5;j++)
                    printf("%d ",ans[i][j]);
                    printf("%d
    ",ans[i][6]);
            }
            printf("
    ");
            
        }
        
        return 0;
    }


    想的太多,做的太少。
  • 相关阅读:
    编译JDK12
    Hexo Next背景动画Canvas_nest:true设置无效
    素数
    Linux 命令行样式
    四种排序算法实现
    Java中的简单容器
    一个关于2的次方问题
    LeetCode--20.有效的括号
    Java中的注释
    关于Metasploitable的测试
  • 原文地址:https://www.cnblogs.com/pealicx/p/6115665.html
Copyright © 2011-2022 走看看