答案: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 ...