方格填數,藍橋杯2023年第6題

2021-08-16 06:48:52 字數 973 閱讀 7695

方格填數

如下的10個格仔

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

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

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

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

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

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

小歧異:不知道0~9 可不可以重複使用。

當作不可以重複使用來處理的。

答案是:1580

next_permutation寫法:

/*

0 1 2

3 4 5 6

7 8 9

方法一:窮舉法,用到 next_permutation()

*/#include#include//fabs需要

#include//next_permutation() 需要

using namespace std;

int main()

,count=0;

do

}while(next_permutation(a,a+10));

cout遞迴型dfs+回溯寫法:

#include#include//整型應該用abs,而不是fabs,此處用了也不錯就是了

using namespace std;

int visit[10],a[10],count=0;

void dfs(int step)

return;

}

for(int i=0;i<=9;i++)

}return;

}int main()

{ dfs(0);

cout<

方格填數(2023年藍橋杯)

如圖,如下的10個格仔,填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。看到這題第乙個想到的方法就是回溯,就很像八皇后,能填進去就填,填不進去就看下乙個位置 我做的是0 9不重複使用 我感覺這題麻煩就在判斷上 1.首先要...

2023年藍橋杯A組第三題 方格填數

方格填數 如下的10個格仔 不能填數字 需要填寫數字的空格 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 搜尋,把10個空全部填完,然後判斷每乙個...

2023年藍橋杯 A組 方格填數(dfs)

題目分析 有兩種思路,一種是從左上角第乙個節點開始,向下面和右面依次遍歷,每次填乙個數,並且判斷是否和四周的數相鄰。還有一種是直接全排列0 9,然後從左到右,從上到下依次填入,之後判斷是否滿足相鄰的格仔數不相鄰的條件,如果滿足則方案數 1.全排列用next permutation函式即可。inclu...