小明的故事之阿拉丁神燈(遞迴回溯)

2021-08-17 02:56:49 字數 1594 閱讀 3912

time limit: 1 sec  

memory limit: 128 mb

submit: 26  

solved: 8 [

submit][

status][

web board]

走過樓梯之後,小明來到了乙個屋子,小明開啟門,看見屋子裡的桌子上擺著乙個神燈,他走過去拿起神燈,看了下標籤,上面寫著阿拉丁牌。原來,這就是傳說中的阿拉丁神燈,小明興奮不已,立即開啟神燈,果然,燈神出來了,燈神笑著對他說:「我可以滿足你乙個願望,前提是你回答對了我的問題!問題是這樣的,在乙個給定形狀的棋盤(形狀可能是不規則的)上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。」你能幫小明解決這個難題嗎?

輸入含有多組測試資料。

每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將在乙個n*n的矩陣內描述棋盤,以及擺放棋子的數目。 n <= 8 , k <= n

當為-1, -1時表示輸入結束。

隨後的n行描述了棋盤的形狀:每行有n個字元,其中 # 表示棋盤區域, . 表示空白區域(資料保證不出現多餘的空白行或者空白列)。

對於每一組資料,給出一行輸出,輸出擺放的方案數目c (資料保證c<2^31)。

2 1

#..#

2 1#.

#.-1 -1

2

2

#include

#include

usingnamespacestd;

charstr[10][10];

intn,k,vis[10],sum,count1;

voiddfs(introw)

else

}

}

dfs(row+1);

}

intmain(intargc,char*argv)

dfs(0);

cout << sum <}

return0;

}

小明養豬的故事

話說現在豬肉 這麼貴,小明也開始了養豬生活。說來也奇怪,他養的豬一出生第二天開始就能每天中午生乙隻小豬,而且生下來的竟然都是母豬。不過光生小豬也不行,小明採用了乙個很奇特的辦法來管理他的養豬場 對於每頭剛出生的小豬,在它生下第二頭小豬後立馬被殺掉,賣到超市裡。假設在創業的第一天,小明只買了一頭剛出生...

小強與小明 的故事

小強與小明 的故事 1.小強每天在村里晃悠,爹媽看著發愁,心想這孩子將來怎麼辦呀 小明每日都苦讀詩書,父母喜在心裡,村裡人都認定他必有出息。2.那年,小強和小明都是十九歲,小強跟著村里的外出打工,來到了高速公路的工地,保底工資三千塊 小明考上了一所重點大學,讀的是道路與橋梁專業,學費每年五千多。3....

0092 小明養豬的故事 C

小明養豬的故事 描述話說現在豬肉 這麼貴,小明也開始了養豬生活。說來也奇怪,他養的豬一出生第二天開始就能每天中午生乙隻小豬,而且生下來的竟然都是母豬。不過光生小豬也不行,小明採用了乙個很奇特的辦法來管理他的養豬場 對於每頭剛出生的小豬,在它生下第二頭小豬後立馬被殺掉,賣到超市裡。假設在創業的第一天,...