四階幻方 藍橋杯 DFS

2022-05-03 12:24:22 字數 799 閱讀 4705

答案:416

用next_permutation()全部排列的話會超時

所以用dfs搜尋,只搜尋前三行就好,前三行確定之後,第四行也就確定

#include#include

#include

#include

using

namespace

std;

int vis[17],a[5][5

];int ans=0

;int check(int x,int

y) }

else

//x==3

if(y==1||y==2)//

判斷第2列和第3列

if(a[0][y]+a[1][y]+a[2][y]+a[3][y]!=34

)

return0;

if(y==3)//

判斷第4列和主對角線

if((a[0][y]+a[1][y]+a[2][y]+a[3][y]!=34)||(a[0][0]+a[1][1]+a[2][2]+a[3][3])!=34

)

return0;

else

}}void dfs(int x,int

y)

//else if(y>3)

//dfs(x+1,0);

else

vis[i]=0

; }}

}}int

main()

藍橋杯 四階幻方 C語言

把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...

藍橋杯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 ...