您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页PAT A1128 N Queens Puzzle [模拟]

PAT A1128 N Queens Puzzle [模拟]

来源:化拓教育网

题目描述


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

分析

  • 循环是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;
}

转载于:https://www.cnblogs.com/doragd/p/114548.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务