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