2016藍橋杯C C A組填數字

2021-07-10 21:56:02 字數 1138 閱讀 8000

方格填數

如下的10個格仔

+--+--+--+

|  |  |  |

+--+--+--+--+

|  |  |  |  |

+--+--+--+--+

|  |  |  |

+--+--+--+

(如果顯示有問題,也可以參看【圖1.jpg】)

填入0~9的數字。要求:連續的兩個數字不能相鄰。

(左右、上下、對角都算相鄰)

一共有多少種可能的填數方案?

請填寫表示方案數目的整數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

此題是一道典型的深搜題目,因為是填空題,不需要考慮效率,若用c++的庫函式(next_permutation)直接寫也是很方便的,用了此庫函式可直接進行數次if判斷就可得出結果。

首先,將原圖進行拆分整合,得下圖

download as text

1

2 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的女...