回溯法前两关
提供图片和文字两种查看形式,一种方便阅读,一种方便CV(粘贴文字后记得把表情包换回/st)最下面有第二关用::count的解释第一关#include <bits[em]e313[/em]dc++.h>using namespace std;/********** Begin */#define MAXN 20int q[MAXN];void dispasolution(int n){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(j!=q[i]) cout<<" “; else cout<<” Q"; } cout<<endl; } cout<<endl;}bool place(int i){ int j=1; if(i==1) return true; while(j<i){ if(q[j]==q[i]||(abs(q[j]-q[i]))abs(j-i)){ return false; } j++; } return true;}int queens(int n){ int i=1,count=0; q[i]=0; while(i>=1){ q[i]++; while(q[i]<=n&&!place(i)) q[i]++; if(q[i]<=n){ if(in){ dispasolution(n); count++; }else{ i++; q[i]=0; } }else{ i–; } } return count;}int main(){ int n; cin>>n; int count; count=queens(
皇后头歌问题
最新推荐文章于 2024-05-17 15:06:54 发布