• N-Queens


    代码:

     1     vector<vector<string> > result;
     2     void search(int line, int total, vector<string> &v, vector<bool> &col, vector<bool> &left, vector<bool> &right){
     3         if(line == total){
     4             result.push_back(v);
     5             return;
     6         }
     7         int i;
     8         for(i = 0; i < total; i++){
     9             if(col[i] && left[line+i] && right[line+total-i-1]){
    10                 col[i] = false;
    11                 left[line+i] = false;
    12                 right[line+total-i-1] = false;
    13                 v[line][i] = 'Q';
    14                 search(line+1, total, v, col, left, right);
    15                 v[line][i] = '.';
    16                 col[i] = true;
    17                 left[line+i] = true;
    18                 right[line+total-i-1] = true;
    19             }
    20         }
    21     }
    22     vector<vector<string> > solveNQueens(int n) {
    23         // IMPORTANT: Please reset any member data you declared, as
    24         // the same Solution instance will be reused for each test case.
    25         result.clear();
    26         string s;
    27         s.assign(n, '.');
    28         vector<string> v(n, s);
    29         vector<bool> col(n, true), left(2*n-1, true), right(2*n-1, true);
    30         search(0, n, v, col, left, right);
    31         return result;
    32     }
  • 相关阅读:
    考研_数据结构
    快速排序模板
    nginx设置跳转https
    PHP 构造函数
    js scroll事件
    php获取url中的参数
    js 的cookie问题
    yii2关联表
    sql优化之concat/concat_ws/group_concat
    yii2.0 url美化-apache服务器
  • 原文地址:https://www.cnblogs.com/waruzhi/p/3405618.html
Copyright © 2020-2023  润新知