問題描述
如下的10個格仔
如下的10個格仔
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
請輸出表示方案數目的整數。
注意:你輸出的應該是乙個整數,不要輸出任何多餘的內容或說明性文字。
輸入沒有輸入。
輸出輸出乙個整數,即可能的填數方案數。
題目限制
1s, 1024kib for each test case.
提示用printf或和cout輸出答案。
思路:1.生成數字0~9的全排列
2.在每一次新生成的全排列檢查題目要求中的相鄰
3.我們在方格中可以把陣列a依次填入其中,陣列序號從0~9
4.上下相鄰:a[i] / a[i+4] (i:0~5)
5.左右相鄰:a[i] / a[i+1] (i:0~8,一定要注意這裡i!=2,6,就是在這裡我沒注意)
6.左邊頂相鄰:a[i] / a[i+3] (i:0~6,i!=3)
7.右邊頂相鄰:a[i] / a[i+5] (i:0~4,i!=2)
#include
#include
#include
#include
using
namespace std;
intsx_check
(int
*a)return1;
}int
zy_check
(int
*a)return1;
}int
zd_check
(int
*a)return1;
}int
yd_check
(int
*a)return1;
}int
main()
;dowhile
(next_permutation
(a,a+x));
printf
("%d\n"
,ans)
;return0;
}
方格填數 (全排列)
填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 全排列0 9,判斷是否相鄰,若為相鄰則兩數之差的絕對值為1 include include incl...
方格填數 全排列
如下的10個格仔 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。include include include using namespace std ...
方格填數(藍橋杯練習 全排列暴力解法)
題意 10個格仔填數字,0 9 要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。格仔樣式 4 4左上第乙個不存在,右下最後乙個不存在 基本思路 利用next permutation列舉排列情況,然後驗證是否符合要求即可 include i...