方格填數
如下的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...