藍橋杯 四階幻方 C語言

2021-09-12 19:50:16 字數 844 閱讀 9506

把1~16的數字填入4x4的方格中,使得行、列以及兩個對角線的和都相等,滿足這樣的特徵時稱為:四階幻方。

四階幻方可能有很多方案。如果固定左上角為1,請計算一共有多少種方案。

比如:1  2 15 16

12 14  3  5

13  7 10  4

8 11  6  9

以及:1 12 13  8

2 14  7 11

15  3 10  6

16  5  4  9

就可以算為兩種不同的方案。

請提交左上角固定為1時的所有方案數字,不要填寫任何多餘內容或說明文字。

需要在dfs的時候就先判斷前四個,前八個,前16個,這樣時間上會省很多時間

下面是**,結果是416,本來我的結果是7040,因為我排列的時候是從1 到 16 進行全排列的,所以錯了,

如果答案是7040的都是從1開始dfs的,

正確答案是416,得從2開始dfs

本人能力有限,目前只有能力這麼寫,

下面是**

#includeint count = 0,k = 0;

int b[20] = ;

int a[20] = ;

int swap(int a,int i,int j)

int f1()

int f(int n)

else if(n == 8)

else if(n == 12)

if(n == 16)

printf("\n");

} }for(i = 2; i < 17; i++) }

}int main()

四階幻方 藍橋杯 DFS

答案 416 用next permutation 全部排列的話會超時 所以用dfs搜尋,只搜尋前三行就好,前三行確定之後,第四行也就確定 include include include include using namespace std int vis 17 a 5 5 int ans 0 in...

藍橋杯2015決賽 四階幻方

萬萬沒想到能拿到省一,以為第一次能拿個省二就不錯了,有些意外。那麼就從此題再次開啟我的藍橋杯刷題之旅把!求第i行的和 if sum 34 return0 return1 bool check for int j 0 j 4 j 列 return1 void dfs int step return i...

藍橋杯 2015國賽 四階幻方

題目鏈結 把1 16的數字填入4x4的方格中,使得行 列以及兩個對角線的和都相等,滿足這樣的特徵時稱為 四階幻方。四階幻方可能有很多方案。如果固定左上角為1,請計算一共有多少種方案。比如 1 2 15 16 12 14 3 5 13 7 10 4 8 11 6 9以及 1 12 13 8 2 14 ...