方格填數
如下的10個格仔
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
答案
解題思路
題目應該是要求0~9是不重複的。那麼我想通過a[10]將0~9進行全排列,然後將值賦給二維陣列m[3][4]。從而m記錄每個方格的數字。我只要寫判斷語句就行了。這裡用來next_permutation()進行全排列,一般用do-while()加next_permutation()就能完成全排列,並且能在do-while語句中書寫全排列要滿足的條件。
附上**
#include#include#include#include#includeusing namespace std;
const int m=100010;
int a[m]=;
int m[3][4]=;
int ans=0;
int main()
while(next_permutation(a,a+10));
cout<=0&&j-1>=0&&j+1<=3)
if(j+1<=3)
}if(i+1<=2)
if(j+1<=3)
if(fabs(aij-m[i+1][j])==1)
return false;
}if(j-1>=0)
if(j+1<=3)
}} return true;
}
藍橋杯 方格填數
方格填數 如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。include include in...
方格填數 藍橋杯
如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。解 可以直接用全排列的方法解決,但是用dfs ...
藍橋杯 方格填數
方格填數 如下的10個格仔 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。全排列函式呼叫next permutation f,f 10 直接暴力 在這裡...