在2行5列的格仔中填入1到10的數字。要求:相鄰的格仔中的數,右邊的大於左邊的,下邊的大於上邊的。
如下圖所示的2種,就是合格的填法。
請你計算一共有多少種可能的方案。
注:本題來自藍橋杯2023年決賽,方格填數,為填空題。從題目,我們可以得到,這些填入的數字應該滿足以下條件:右邊的數比左邊大。
下面的數比上面的數大。
第乙個格仔一定是1,最後乙個各自一定是10,其餘每個各自都必須在一定的範圍內。
數字不能重複。
很明顯,暴力列舉法就誕生了,只需8個迴圈,對每種組合進行一一判斷即可。
10個數字依次填入,不滿足就退回去找其他的數字,這是乙個回溯的過程,所以我們可以使用深度優先搜尋來解決此問題。
#includeint a[2][5];
int cou = 0;
int check()
if (a[1][i] < a[1][i-1])
if (a[1][i] < a[0][i])
}return 1;
}int main()
} int b[8];
a[0][0] = 1;
a[1][4] = 10;
for (b[0] = 2; b[0] <= 6; b[0]++)}}
}}}}
} }printf("%d\n", cou);
}
#includeint a[2][5];
int cou = 0;
int flag[10];
int check()
if (a[1][i] < a[1][i-1])
if (a[1][i] < a[0][i])
}return 1;
}void dfs(int num)
return;
} for (int i = 1; i <= 10; i++) }
}int main()
} for (int i = 0; i < 10; i++)
dfs(0);
printf("%d\n", cou);
}
答案:42藍橋杯方格填數DFS
如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。題目要求一點與和它相鄰的8個點都不相差1 in...
藍橋杯 方格填數(dfs深搜)
如下的10個格仔 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 直接暴力列舉每個位置可不可以安放 include include include ...
方格填數 (搜尋)
時間限制 1 sec 記憶體限制 128 mb 提交 60 解決 26 提交 狀態 討論版 如上面的10個格仔,填入0 9的數字,不能重複 原先已經填了一部分數字 要求 連續的兩個數字不能相鄰 左右,上下,對角都算相鄰 例如 數字0和1不能放在一起。問 一共有多少種可能的填數方案?輸入多組測試資料。...