亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

2n皇后問題 [dfs][一個高效的優化]

2019-11-10 17:45:13
字體:
來源:轉載
供稿:網友

題目描述

給定一個n*n的棋盤,棋盤中有一些位置不能放皇后。

現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行、同一列或同一條對角線上,任意的兩個白皇后都不在同一行、同一列或同一條對角線上。

問總共有多少種放法?

輸入

輸入的第一行為一個整數n,表示棋盤的大小。

接下來n行,每行n個0或1的整數,如果一個整數為1,表示對應的位置可以放皇后,如果一個整數為0,表示對應的位置不可以放皇后。

n小于等于8。

輸出

輸出一個整數,表示總共有多少種放法。

樣例輸入

4 1111 1111 1111 1111 4 1011 1111 1111 1111 樣例輸出 2 0

解題報告

探討2n皇后問題之前,先看看N皇后問題 用vis[3][] 標記已經訪問過的縱,和兩個對角線。這樣復雜度就可以大大減低o(1)的時間內可以判定是否可行。

對于縱排是否可以訪問只要記錄那一縱的橫坐標即可;對角線是直線,我們記錄他的截距即可。

說了這么多,為什么我沒提到橫排的問題,這個自己體會代碼吧,懶得打字了。

#include<stdio.h>#include<string.h>#define MAX_N 8bool map[MAX_N][MAX_N];bool vis[3][MAX_N*2];int N,ans;void dfs_1(int cnt){ if(cnt==N){ans++;return ;} for(int i=0;i<N;i++){ if(vis[0][i]||vis[1][i+cnt]||vis[2][N-cnt+i]) continue; vis[0][i]=vis[1][i+cnt]=vis[2][N-cnt+i]=true; dfs_1(cnt+1); vis[0][i]=vis[1][i+cnt]=vis[2][N-cnt+i]=false; }}int main(){ while(~scanf("%d",&N)){ for(int j=0;j<N;j++) for(int k=0;k<N;k++) scanf("%1d",&map[k][j]); ans=0; dfs_1(0); 在上面基礎上dfs再走一遍就解決2n皇后問題了 //我把bool型的map寫成char,因為這個WA了兩次,,,我也不知道原因,理論上是沒問題的,不知道是oj的問題還是數據的問題

#include<stdio.h>#include<string.h>#define MAX_N 20char map[MAX_N][MAX_N];bool vis[3][MAX_N*2];bool vis_0[3][MAX_N*2];bool used[MAX_N][MAX_N];int N,ans;void dfs_0(int cnt){ if(cnt==N){ans++;return ;} for(int i=0;i<N;i++){ if(vis_0[0][i]||vis_0[1][i+cnt]||vis_0[2][N-cnt+i]||used[cnt][i]||map[cnt][i]=='0') continue; vis_0[0][i]=vis_0[1][i+cnt]=vis_0[2][N-cnt+i]=true; dfs_0(cnt+1); vis_0[0][i]=vis_0[1][i+cnt]=vis_0[2][N-cnt+i]=false; }}void dfs_1(int cnt){ if(cnt==N){ dfs_0(0); return ;} for(int i=0;i<N;i++){ if(vis[0][i]||vis[1][i+cnt]||vis[2][N-cnt+i]||map[cnt][i]=='0') continue; used[cnt][i]=vis[0][i]=vis[1][i+cnt]=vis[2][N-cnt+i]=true; dfs_1(cnt+1); used[cnt][i]=vis[0][i]=vis[1][i+cnt]=vis[2][N-cnt+i]=false; }}int main(){ while(~scanf("%d",&N)){ for(int j=0;j<N;j++) scanf("%s",map[j]); memset(vis,0,sizeof(vis)); memset(vis_0,0,sizeof(vis_0)); memset(used,0,sizeof(used)); ans=0; dfs_1(0); printf("%d/n",ans); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美疯狂xxxx大交乱88av| 欧美日韩国产中文精品字幕自在自线| 91精品久久久久久久久久另类| 久久久久久久久久亚洲| 国产日韩在线免费| 亚洲天堂视频在线观看| 午夜精品一区二区三区视频免费看| 欧美限制级电影在线观看| 国产丝袜一区视频在线观看| 韩国国内大量揄拍精品视频| 精品久久久久久久久久久久| 日韩视频免费在线观看| 久久亚洲国产精品| 欧美夜福利tv在线| 91精品国产综合久久香蕉922| 国产精品看片资源| 成人激情视频免费在线| 国产精品九九久久久久久久| 成人亚洲欧美一区二区三区| 国产精品极品美女在线观看免费| 日韩成人激情视频| 亚洲图片制服诱惑| 亚洲黄色在线观看| 国产精品久久久久久久久免费看| 日韩女优在线播放| 久久这里只有精品视频首页| 国产精品1234| 色哟哟亚洲精品一区二区| 在线观看国产欧美| 日韩中文字幕在线播放| 国产一区欧美二区三区| 久久久久久久久国产精品| **欧美日韩vr在线| 亚洲2020天天堂在线观看| 亚洲奶大毛多的老太婆| 国产精品视频一区二区高潮| 中文字幕亚洲一区在线观看| 欧美午夜女人视频在线| 精品国产一区二区三区在线观看| 在线观看精品国产视频| 日韩欧美亚洲成人| 日韩av高清不卡| 蜜臀久久99精品久久久久久宅男| 2018日韩中文字幕| 伊人久久久久久久久久久久久| 亚洲成人激情图| 97在线视频免费播放| 久久久久久久久久久免费| 欧洲一区二区视频| 92看片淫黄大片看国产片| 欧美夫妻性视频| 欧美午夜精品久久久久久浪潮| 国产精品678| 欧美性视频网站| 法国裸体一区二区| 久久久久久综合网天天| 日韩精品中文字幕视频在线| 久久久久久久久久久久久久久久久久av| 亚洲男人第一av网站| 福利二区91精品bt7086| 亲爱的老师9免费观看全集电视剧| 国产精品爽爽ⅴa在线观看| 日本久久中文字幕| 日韩欧美第一页| 欧美成人精品在线播放| 国产精品美女主播在线观看纯欲| 色av中文字幕一区| 成人精品在线视频| 欧美极品少妇与黑人| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久av在线看| 91精品久久久久久综合乱菊| 久久久免费精品| 亚洲精品视频免费在线观看| 欧美巨乳美女视频| 日韩av电影在线播放| 亚洲人成电影在线| 欧美精品制服第一页| 精品成人乱色一区二区| 亚洲精品aⅴ中文字幕乱码| 日韩视频免费大全中文字幕| 日韩精品免费一线在线观看| 国产精品一区av| 精品动漫一区二区三区| 亚洲欧美日韩国产中文| 欧美午夜宅男影院在线观看| 亚洲一区二区三区sesese| 日韩在线观看成人| 欧美在线影院在线视频| 欧美日韩中文在线| 国产丝袜一区二区三区| 亚洲视频在线观看视频| 国产精品久久久一区| 日韩免费观看网站| 久久国产精品久久久久久| 色综合色综合网色综合| 久久夜色精品国产亚洲aⅴ| 国产深夜精品福利| 136fldh精品导航福利| 日韩有码在线电影| 麻豆乱码国产一区二区三区| 欧美激情视频三区| 欧美日韩中国免费专区在线看| 亚洲午夜久久久影院| 国产精品久久久久久久美男| 欧美影院成年免费版| 黑人巨大精品欧美一区二区一视频| 精品国产拍在线观看| 伊人亚洲福利一区二区三区| 日日噜噜噜夜夜爽亚洲精品| 97av在线视频免费播放| 亚洲精品91美女久久久久久久| 国产精品一区电影| 97超级碰在线看视频免费在线看| 在线激情影院一区| 欧美午夜影院在线视频| 日韩一区二区久久久| 成人网页在线免费观看| 日韩禁在线播放| 国产91色在线免费| 日韩在线免费高清视频| 欧美日韩在线视频观看| 日韩网站免费观看| 欧美与欧洲交xxxx免费观看| 欧美在线xxx| 成人在线激情视频| 91欧美激情另类亚洲| 91久久久国产精品| 亚洲三级av在线| 91精品在线一区| 亚洲xxx视频| 激情久久av一区av二区av三区| 国产色视频一区| 成人免费网站在线看| 国产精品视频免费观看www| 欧美精品久久久久久久免费观看| 国产精品xxx视频| 久热精品视频在线免费观看| 国产美女久久精品| 亚洲欧美精品一区| 欧美精品在线观看91| 国产亚洲精品一区二区| 在线精品国产欧美| 亚洲欧美日韩第一区| 456亚洲影院| 一区二区三区四区在线观看视频| 久久久久国产精品www| 精品丝袜一区二区三区| 日韩二区三区在线| 欧美性生活大片免费观看网址| 日韩在线一区二区三区免费视频| 日韩在线不卡视频| 亚洲天堂第一页| 国产精品爱久久久久久久| 国产一区二区三区欧美| 日韩av免费看网站| 亚洲精品视频免费在线观看| 中文字幕精品一区二区精品| 国外日韩电影在线观看| www.欧美三级电影.com| 久久天天躁狠狠躁夜夜躁| 国模gogo一区二区大胆私拍| 亚洲丝袜一区在线| 国产精品久久久久久久久久|