方格填數
如下的10個格仔
+--+--+--+
| | | |
+--+--+--+--+
| | | | |
+--+--+--+--+
| | | |
+--+--+--+
(如果顯示有問題,也可以參看【圖1.jpg】)
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
請填寫表示方案數目的整數。
注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。
此題是一道典型的深搜題目,因為是填空題,不需要考慮效率,若用c++的庫函式(next_permutation)直接寫也是很方便的,用了此庫函式可直接進行數次if判斷就可得出結果。
首先,將原圖進行拆分整合,得下圖
download as text
12 34 5
6 78 9
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
40
#include#include//演算法標頭檔案,包含許多十分方便的庫函式(next_permutation()就在其中)
#include//數學標頭檔案fabs()是絕對值的庫函式
using
namespace
std;
intmain()}
}}}}
}}}while
(next_permutation(a
,a+10
));//全排列的函式,兩個引數為所需排列的陣列首位址和末位址
cout
<<
sum;
return0;
}
藍橋杯 2016c c A組 方格填數
判斷當前數字是否已經用過 int flag 3 4 用來儲存每個格仔,判斷格仔是否能用 int map 3 4 用來儲存數字的格仔 int ans 記錄數目 void init 初始化 flag 0 0 0 左上角格仔不能訪問 flag 2 3 0 右下角格仔不能訪問 void judge int ...
2016藍橋杯省賽C C A組第三題 方格填數
題意 如下的10個格仔 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?分析 dfs,劃定邊界,行1 4,列1 3,初始化為int inf,這樣所填入的數字與int inf一定不相鄰,所以可不必單獨考慮 1,1 和 3,4 兩個格仔。includ...
2018藍橋杯 c c A 組 6 航班時間
問題背景 小h前往美國參加了藍橋杯國際賽。小h的女朋友發現小h上午十點出發,上午十二點到達美國,於是感嘆到 現在飛機飛得真快,兩小時就能到美國了 小h對超音速飛行感到十分恐懼。仔細觀察後發現飛機的起降時間都是當地時間。由於北京和美國東部有12小時時差,故飛機總共需要14小時的飛行時間。不久後小h的女...