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

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

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

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

題目描述

給定一個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
欧美精品电影在线| 国产视频丨精品|在线观看| 97视频人免费观看| 国产精品69精品一区二区三区| 久久久久这里只有精品| 国产亚洲一区二区在线| 国产精品日韩在线| 国产中文字幕日韩| 久久亚洲电影天堂| 欧美在线视频在线播放完整版免费观看| 欧美激情一二三| 亚洲欧美日韩高清| 狠狠色狠狠色综合日日小说| 成人国内精品久久久久一区| 伊人精品在线观看| 国产精品爱久久久久久久| 国产成人免费91av在线| 亚洲欧美制服第一页| 亚洲自拍偷拍色图| 久久久久国产精品免费网站| 成人黄色影片在线| 国产精品美女在线| 91精品视频免费观看| 久久精视频免费在线久久完整在线看| 欧美色道久久88综合亚洲精品| 国产精品成av人在线视午夜片| 欧美大人香蕉在线| 久久久久久久香蕉网| www.亚洲男人天堂| 97在线视频免费播放| 丝袜情趣国产精品| 日韩在线精品一区| 欧美高清在线视频观看不卡| 91久久精品日日躁夜夜躁国产| 久久免费福利视频| 久久在线精品视频| 久久成人精品视频| 亚洲精品黄网在线观看| 国产精品久久久久aaaa九色| 欧美高清视频免费观看| 亚洲一区二区三区成人在线视频精品| 久久人人爽人人爽人人片av高清| 欧美高清视频免费观看| 国产精品老女人视频| 欧美尤物巨大精品爽| 亚洲欧美国产精品| 亚洲系列中文字幕| 国产丝袜一区二区| 欧美理论电影在线观看| 久久男人资源视频| 中文字幕亚洲欧美日韩2019| 久久久久久国产精品久久| 在线观看国产精品91| 久久久亚洲福利精品午夜| 亚洲第一av网| 亚洲性线免费观看视频成熟| 精品久久中文字幕久久av| 成人精品视频久久久久| 九九九热精品免费视频观看网站| 色视频www在线播放国产成人| 亚洲国产成人精品久久| 91久久久久久久一区二区| 18性欧美xxxⅹ性满足| 亚洲欧美国内爽妇网| 国产97人人超碰caoprom| 亚洲国产日韩一区| 国产精品r级在线| 国产精品91久久| 日韩黄色在线免费观看| 亚洲国内高清视频| 欧美日韩亚洲精品一区二区三区| 亚洲国产精品va在看黑人| 国产一区二区三区在线看| 91免费在线视频网站| 日韩在线一区二区三区免费视频| 91免费综合在线| 国产91精品最新在线播放| 国产精品专区第二| 国产精品99久久99久久久二8| 蜜臀久久99精品久久久久久宅男| 亚洲欧洲一区二区三区久久| 亚洲免费av片| 美女久久久久久久久久久| 国产精品嫩草影院久久久| 2019中文字幕免费视频| 精品露脸国产偷人在视频| 色悠悠久久88| 日韩一区二区av| 在线观看国产精品淫| 国产亚洲免费的视频看| 日韩av网址在线| 欧美日韩一区二区免费在线观看| 色一情一乱一区二区| 91久久久久久久久| 亚洲视频欧洲视频| 国产精品成人va在线观看| 91久久在线播放| 性金发美女69hd大尺寸| 日韩欧美大尺度| 亚洲理论片在线观看| 亚洲自拍高清视频网站| 欧美性理论片在线观看片免费| 97在线看免费观看视频在线观看| 97在线免费视频| 国产福利成人在线| 国产免费一区二区三区香蕉精| 奇米影视亚洲狠狠色| 俺去了亚洲欧美日韩| 精品福利免费观看| 国产精品免费一区二区三区都可以| 亚洲欧美一区二区精品久久久| 国产91精品久| 久久久精品网站| 自拍视频国产精品| 亚洲精品国产精品久久清纯直播| 精品国内自产拍在线观看| 狠狠综合久久av一区二区小说| 久久天天躁狠狠躁夜夜爽蜜月| www.欧美视频| 日韩美女毛茸茸| 91久久久久久久久久久| 亚洲欧美国产va在线影院| 性欧美亚洲xxxx乳在线观看| 中文字幕亚洲天堂| 国产精品久久久久9999| 日韩在线免费观看视频| 狠狠色香婷婷久久亚洲精品| 国产午夜精品理论片a级探花| 国产精品欧美激情在线播放| 日韩有码在线播放| 日韩在线视频导航| 欧美大全免费观看电视剧大泉洋| 久久久国产视频91| 国产精品网红直播| 国产日产亚洲精品| 91日韩在线视频| 91欧美视频网站| 日韩不卡中文字幕| 韩国精品久久久999| 日韩电影大片中文字幕| 亚洲精品一区二区三区婷婷月| 色诱女教师一区二区三区| 一本色道久久88亚洲综合88| 日韩一区二区三区xxxx| 国产精品视频免费在线观看| 操日韩av在线电影| 久久久久久91| 亚洲激情久久久| 久久久99免费视频| 91中文精品字幕在线视频| 国产精品免费一区豆花| 欧美日韩国产第一页| 美女啪啪无遮挡免费久久网站| 亚洲欧美第一页| 91高潮精品免费porn| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产成人精品免费视频| 亚洲国产精品美女| 国产亚洲aⅴaaaaaa毛片| 久久精品成人欧美大片| 欧洲美女7788成人免费视频| 668精品在线视频| 国产主播欧美精品| 欧美另类极品videosbestfree|