首页 > 其他 > 详细

PAT A1128 N Queens Puzzle [模拟]

时间:2019-09-03 20:42:52      阅读:110      评论:0      收藏:0      [点我收藏+]

题目描述

链接
题目上只保证了不在同一列,要判断是否在同一行,以及是否在同一列

分析

  • 循环是0~n-1, 0~n-1
  • 不满足的条件是v[j] == v[t] || abs(v[j]-v[t]) == abs(j-t)

代码

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
    int k, n;
    cin >> k;
    for (int i = 0; i < k; i++) {
        cin >> n;
        vector<int> v(n);
        bool result = true;
        for (int j = 0; j < n; j++) {
            cin >> v[j];
            for (int t = 0; t < j; t++) {
                if (v[j] == v[t] || abs(v[j]-v[t]) == abs(j-t)) {
                    result = false;
                    break;
                }
            }
        }
        cout << (result == true ? "YES\n" : "NO\n");
    }
    return 0;
}

PAT A1128 N Queens Puzzle [模拟]

原文:https://www.cnblogs.com/doragd/p/11454898.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!