西电OJ - 1035 数独

来源:互联网 发布:提供rs485数据电缆价格 编辑:程序博客网 时间:2024/04/29 09:34

题目链接:http://acm.xidian.edu.cn/problem.php?id=1035

#include <iostream>#include <string.h>using namespace std;/****************************************************************************************************************                题意:判断是否符合数独矩阵                思路:                1,每行每列 1—9 有且只出现一次。(可用一个数组记录哪个数字出现了)                2,每行每列和为45                3,行列分开遍历即可****************************************************************************************************************/int f[10],a[10][10];int main(){    int T;    cin>>T;    while(T--)    {        int sum=0;        for(int i = 1;i <= 9;i ++)            for(int j = 1;j <= 9;j ++)                cin>>a[i][j];        for(int i = 1;i <= 9;i ++){            memset(f,0,sizeof(f));            sum=0;            for(int j = 1;j <= 9;j ++){                if(a[i][j] < 1 || a[i][j] > 9)                    continue;                else if(!f[a[i][j]]){                    f[a[i][j]]=1;                    sum+=a[i][j];                }            }            if(sum != 45)                break;        }        if(sum != 45)            cout<<"no"<<endl;        else{            for(int i = 1;i <= 9;i ++){                memset(f,0,sizeof(f));                sum=0;                for(int j = 1;j <= 9;j ++){                    if(a[j][i] < 1 || a[j][i] > 9)                        continue;                    else if(!f[a[j][i]]){                        f[a[j][i]]=1;                        sum+=a[j][i];                    }                }                if(sum != 45)                    break;            }            if(sum != 45)                cout<<"no"<<endl;            else                cout<<"yes"<<endl;        }    }    return 0;}


0 0
原创粉丝点击