题目1140:八皇后

来源:互联网 发布:高斯面膜 知乎 编辑:程序博客网 时间:2024/04/29 17:47
#include <iostream>#include <algorithm>#include <queue>#include <vector>#include <cstring>#include <stack>#include <string>#include <string.h>#include <stdio.h>#include <cmath>#include <map>#include <functional>#include <set>#include <limits.h>#include <math.h>#include <ctype.h>using namespace std;//1140int d[9];int n,t;vector<string> v;void tran(){    string t;    for(int i=1;i<=8;i++)        t+=char(d[i]+'0');    v.push_back(t);}bool check(int i,int x){    for(int j=1;j<x;j++)        if(i==d[j] || abs(i-d[j])==abs(x-j))            return false;    return true;}void queen(int x)   //放第n列{    if(x>8)    {        tran();        return ;    }    for(int i=1;i<=8;i++)//第x列要放在i行    {        if(!check(i,x)) continue;        d[x]=i;        queen(x+1);    }} int main(){    queen(1);    while(cin>>n)    {        while(n--)        {            cin>>t;            cout<<v[t-1]<<endl;        }    }    return 0;}/**************************************************************    Problem: 1140    User: cust123    Language: C++    Result: Accepted    Time:10 ms    Memory:1520 kb****************************************************************/

0 0
原创粉丝点击