Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
107776 | 朱悦晨 | 跳棋的挑战 | C++ | 通过 | 100 | 321 MS | 244 KB | 615 | 2023-10-28 09:50:59 |
#include<bits/stdc++.h> using namespace std; int n; bool d[256] = {0} , b[16] = {0} , c[256] = {0}; int sum = 0 , a[16]; void search(int); void print(); int main() { cin>>n; search(1); cout<<sum<<endl; return 0; } void search(int i) { int j; if(i>n){ print(); return; } for(j=1;j<=n;j++){ if((!b[j]) && (!c[i+j]) && (!d[i-j+n])){ a[i] = j; b[j] = 1; c[i+j] = 1; d[i-j+n] = 1; search(i+1); b[j] = 0; c[i+j] = 0; d[i-j+n] = 0; } } } void print() { int i; sum++; if (sum<=3) { for(i=1;i<=n;i++) cout<<a[i]<<" "; cout<<endl; } }