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

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

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

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

題目描述

給定一個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
欧美激情亚洲激情| 欧美日韩在线影院| 欧美性少妇18aaaa视频| 日韩av手机在线| 成人av在线亚洲| 国产精品小说在线| 国产一区二区三区欧美| 国语自产精品视频在线看一大j8| 久久久噜噜噜久久| 日本久久久久久久久久久| 欧美精品videos另类日本| 亚洲欧洲日产国产网站| 欧美精品国产精品日韩精品| 欧美日韩国产中字| 国产suv精品一区二区| 亚洲综合精品伊人久久| 久久久久久久91| 亚洲精品国产电影| 97精品国产97久久久久久免费| 亚洲欧美一区二区激情| 91亚洲午夜在线| 欧美日韩一区二区免费在线观看| 91精品视频观看| 欧美在线视频导航| 亚洲无亚洲人成网站77777| 亚洲性视频网站| 久久九九热免费视频| 另类视频在线观看| 欧美日韩中文字幕综合视频| 国内伊人久久久久久网站视频| 中文字幕亚洲自拍| 久久视频免费在线播放| 欧美日韩第一视频| 欧美日韩在线观看视频小说| 欧美性69xxxx肥| 97久久精品人人澡人人爽缅北| 最近更新的2019中文字幕| 欧美亚洲成人精品| 精品国产91久久久久久| 久久精品视频在线观看| 日韩欧美中文字幕在线观看| 日韩视频一区在线| 久久久久九九九九| 色一情一乱一区二区| 欧美孕妇与黑人孕交| 91亚洲国产成人久久精品网站| 欧美激情视频播放| 亚洲精品国产美女| 欧美在线精品免播放器视频| 国产精品偷伦免费视频观看的| 成人黄色中文字幕| 国产精品久久久久久久久粉嫩av| 久久99视频精品| 日日狠狠久久偷偷四色综合免费| 日韩av影视在线| 中文字幕日韩精品有码视频| 国产精品黄页免费高清在线观看| 91在线视频成人| www.亚洲免费视频| 国产xxx69麻豆国语对白| 91精品国产91久久久久久久久| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕在线亚洲| 黄色成人av网| 欧美在线一区二区视频| 日韩在线中文字| 国产精品午夜视频| 欧美国产日韩xxxxx| 亚洲日本欧美日韩高观看| 一本色道久久88精品综合| 亚洲欧洲自拍偷拍| 亚洲国产精品美女| 国产精品天天狠天天看| 激情av一区二区| 国产精品久久综合av爱欲tv| 91av免费观看91av精品在线| 国产精品视频999| 日韩中文字幕精品| 成人黄色免费看| 国产91精品在线播放| 国产91精品久久久久| 欧美日韩精品在线视频| 97在线视频观看| 亚洲综合国产精品| 久久影视电视剧凤归四时歌| 亚洲欧美制服中文字幕| 日韩a**中文字幕| 日韩欧美中文字幕在线播放| 91国内在线视频| 国产精品免费观看在线| 欧美成人高清视频| 91精品久久久久久久久| 久久久久久久999| 日韩精品中文字| 国产精品手机播放| 欧美中文字幕第一页| 91禁外国网站| 在线播放国产一区中文字幕剧情欧美| 91在线观看免费网站| 久久夜精品va视频免费观看| 国产亚洲美女久久| 久久成人精品一区二区三区| 国产午夜精品理论片a级探花| 亚洲成人av在线播放| 欧美性一区二区三区| 福利二区91精品bt7086| 91久久久久久久久久久久久| 色综合伊人色综合网| 日韩在线精品一区| 欧美国产一区二区三区| 亚洲黄色www| 欧美性猛交99久久久久99按摩| 中文字幕精品www乱入免费视频| 亚洲欧美日韩另类| 日韩av日韩在线观看| 中文字幕日韩在线视频| 国产成人涩涩涩视频在线观看| 国产精品三级网站| 国产精品视频大全| 日韩中文字幕免费视频| 精品久久久免费| 欧美性猛交xxxx乱大交极品| 亚洲视频在线观看| 亚洲美女在线视频| 国产性猛交xxxx免费看久久| 色综久久综合桃花网| 亚洲最新av网址| 欧美精品18videos性欧美| 亚洲精品自在久久| 国产精品久久99久久| 国产精品久久久久久av| 国产日本欧美一区二区三区在线| 国产综合久久久久| 国产精品video| 国产欧美精品一区二区三区介绍| 播播国产欧美激情| 人人澡人人澡人人看欧美| 久久成人人人人精品欧| 久久精品人人爽| 日韩av免费在线| 国内精品久久久久久久久| 在线日韩日本国产亚洲| 自拍偷拍亚洲精品| 国外成人在线直播| 亚洲国产成人在线播放| 精品国内亚洲在观看18黄| 日韩电影中文字幕| 成人精品aaaa网站| 欧美俄罗斯性视频| 亚洲成在人线av| 日韩精品中文字幕在线播放| 91亚洲精品久久久久久久久久久久| 一本一本久久a久久精品综合小说| 在线成人激情视频| 欧美日韩一区二区免费视频| 久久婷婷国产麻豆91天堂| 久久这里有精品| 亚洲国产精品久久久| 欧美三级欧美成人高清www| 亚洲精品久久久久| 欧洲精品在线视频| 国产精品99久久99久久久二8| 亚洲精品福利在线| 久久久av网站|