藍橋第二週 和尚挑水

2021-07-08 18:17:51 字數 1446 閱讀 4087

和尚挑水問題

題目描述

某寺廟裡7個和尚:輪流挑水,為了和其他任務不能衝突,各人將有空天數列出如下表:

和尚1: 星期二,四;

和尚2: 星期一,六;

和尚3: 星期三,日;

和尚4: 星期五;

和尚5: 星期一,四,六;

和尚6: 星期二,五;

和尚7: 星期三,六,日;

請將所有合理的挑水時間安排表 

樣例輸入:

input:

樣例輸出:

output:

方案1:

星期1和尚2挑水

星期2和尚6挑水

星期3和尚3挑水

星期4和尚1挑水

星期5和尚4挑水

星期6和尚5挑水

星期7和尚7挑水

方案2:

星期1和尚2挑水

星期2和尚6挑水

星期3和尚7挑水

星期4和尚1挑水

星期5和尚4挑水

星期6和尚5挑水

星期7和尚3挑水

方案3:

星期1和尚5挑水

星期2和尚6挑水

星期3和尚3挑水

星期4和尚1挑水

星期5和尚4挑水

星期6和尚2挑水

星期7和尚7挑水

方案4:

星期1和尚5挑水

星期2和尚6挑水

星期3和尚7挑水

星期4和尚1挑水

星期5和尚4挑水

星期6和尚2挑水

星期7和尚3挑水

共有4種方案

[解題思路]

很明顯的深度優先搜尋,在各人有空的表中(二維陣列),按天數(列)遍歷,發現符合的和尚(行),因為乙個和尚只挑依次水,所以標記當前行和當前列為1,表示已用。

繼續按天數(列)遍歷,直到星期7,依次判斷和尚是否有空,符合則輸出,回溯。

#includeusing namespace std;

//初始化

const int n=8;

const int d=8;

int table[n][d]=;

int note[n][d]=; //記錄當前值是否可用

int ans[8]; //每個方案的值

int sum=0; //統計多少個方案

//完成輸入

void input()

//輸出方案

第二週作業

實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式 功能 顯示輸出班級 姓名 學號 includ...

第二週作業

第一題 include stdafx.h int main int argc,char argv 第二題 include using namespace std int max int x,int y int main 好吧,老師我實在不知道錯在 啊。我都是照著書本來打的,打了幾次還是這樣。第三題 ...

第二週作業

作業1 輸出學生的班級 姓名和學號 include using namespace std int main 以下是主函式 int main 主函式 int number1,number2 定義兩個基本整型變數 number1和number2 cout 請輸入兩個數 輸出 請輸入兩個數 cin nu...