PAT甲级1128 N Queens Puzzle(20 分)

题目链接

#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>

using namespace std;
int c[3][2048];//数组开到1024段错误......
int main()
{
    int m;
    scanf("%d",&m);

    for(int i=0; i<m; i++)
    {
        int n;
        scanf("%d", &n);
        bool flag = true;
        memset(c,0,sizeof(c));
        for(int j=1; j<=n; j++)
        {
            int b;
            scanf("%d",&b);
            if(c[0][b]||c[1][b+j]||c[2][b-j+n])
                flag = false;

            c[0][b] = 1;
            c[1][b+j] = 1;
            c[2][b-j+n] = 1;

        }
        printf(flag?"YES\n":"NO\n");
    }
    return 0;
}
发布了88 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Q_smell/article/details/80985619