藍橋杯省賽真題 方格填數

2021-10-09 04:22:48 字數 1388 閱讀 9956

如下的10個格仔

+--+

--+--+

||||

+--+--

+--+--

+|||

||+--

+--+--

+--+|

|||+

--+--+

--+

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

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

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

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

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

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

用全排列,然後再判斷每兩個位置之間的數是否滿足條件。

#include

#include

using

namespace std;

int a[10]

=;int ans;

bool

check()

voidf(

int k)

/*遞迴回溯生成全排列,適用於無重複元素的情況

考慮第k位,前面已經排好

*/for

(int i=k;i<

10;i++

)//交換數

f(k+1)

;//就相當於把1,2位復原,然後重新進入for迴圈交換1,3位 }}

intmain()

先將方塊填成5x6,用-10填滿(然後把數填進入,這樣好判斷周圍的數是否連續)

入口(1,2),出口(3,4)

#include

#include

using

namespace std;

int a[5]

[6];

int vis[10]

;int ans;

bool

check

(int i,

int j)

}return

true;}

void

dfs(

int x,

int y)

//從0-9抓乙個

for(

int i=

0;i<

10;i++

) vis[i]=1

;//標記已訪問

if(y==4)

dfs(x+1,

1);//換行

else

dfs(x,y+1)

;//繼續右邊格仔 }}

}void

init()

}}intmain()

藍橋杯真題 方格填數

方格填數 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 明顯是一道dfs題 答案 1580 include using namespace std...

藍橋杯省賽 方格填數C C

方格填數 如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。dfs,不多說,下面是 includ...

藍橋杯題 方格填數

填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。我的思路是 先把這10個數進行排列,然後把排列後的數字存入乙個二維陣列b 3 4 中 2 用int c 8...