zoukankan      html  css  js  c++  java
  • Gym

    题目链接:https://odzkskevi.qnssl.com/1110bec98ca57b5ce6aec79b210d2849?v=1490453767


    题解:

    方法1:用STL的set,把每个数放到相应的集合。在放之前如果找到相同的数,则invalid。

    方法2:由于数字只有1~9,可以开vis[]数组,记录每行,每列,每格是否已经放了某个数,如果放了,就标记为1。row[9][10] , col[9][10], grid[3][3][10];

    方法3:分别计算每行,每列,每格的数字和,如果全为45,才符合。

    注意格子的处理方法是使用二维数组grid[i/3][j/3]  i,j范围0~8,因为这样比好好处理格子,而对行列又没有影响。


    这里只放方法1代码:


    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<queue>
    #include<vector>
    #include<map>
    #include<string>
    #include<set>
    #define LL long long
    #define MAX(a,b) (a>b?a:b)
    #define MIN(a,b) (a<b?a:b)
    
    using namespace std;
    
    set<char>row[10], col[10], grid[4][4];
    char a[50][50];
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            //FILE *fin;
            //fin = fopen("1.txt","r");
            int B = 1;
            for(int i = 0; i<9; i++)
            {
                //fscanf(fin,"%s",a[i]+1);
                scanf("%s",a[i]);
                row[i].clear();
                col[i].clear();
            }
    
            for(int i = 0; i<4; i++)
            for(int j = 0; j<4; j++)
            grid[i][j].clear();
    
            for(int i = 0; i<9; i++)
            for(int j = 0; j<9; j++)
            {
                if(row[i].count(a[i][j])==0 && col[j].count(a[i][j])==0 && grid[i/3][j/3].count(a[i][j])==0 )
               {
                   row[i].insert(a[i][j]);
                   col[j].insert(a[i][j]);
                   grid[i/3][j/3].insert(a[i][j]);
               }
    
               else
               {
                   B = 0;
                   break;
               }
            }
    
            if(B)
                puts("Valid");
    
            else
                puts("Invalid");
        }
        return 0;
    }
    

  • 相关阅读:
    mysql库操作
    mysql初识
    numpy科学计算库
    pycharm下安装numpy
    Kettle汇总时参数
    PL/SQL连接查询数据报错时Dynamic Performance Tables not accessible
    HBase Shell输入命令无法删除问题解决技巧
    linux系统利用yum安装其他软件或服务
    Web安全测试
    用户名和密码测试
  • 原文地址:https://www.cnblogs.com/DOLFAMINGO/p/7538750.html
Copyright © 2011-2022 走看看