藍橋杯 九宮幻方

2021-09-12 23:29:47 字數 834 閱讀 8131

注意:第一次寫dfs內用了二重迴圈,外層為位置,內層為未使用過的數字,存在先填充了後面又返回填充前面的情況,導致許多重複,按照樣例給出的得出5!=120的結果......還是太菜了

後來參考了此部落格:

應該是按位置dfs,已經存在資料的位置跳過,直接下乙個位置。此篇部落格僅供記錄錯誤

#include

using namespace std;

int a[10];

int out[10];

bool vis[10];

int ans;

bool check()

for(int i = 1; i <= 3;  i++)

if((a[1] + a[5] + a[9] != sum )|| (a[3] + a[5] + a[7] != sum) )

return false;

return true;

}void dfs(int pos)

return;

}if(a[pos])

for(int i = 1; i <= 9; i++)}}

int main()

}ans = 0;

dfs(1);

if(ans == 1)

}else

cout << "too many" << endl;

return 0;

}

藍橋杯 九宮幻方

3.九宮幻方 問題描述 小明最近在教鄰居家的小朋友小學奧數,而最近正好講述到了三階幻方這個部分。三階幻方指的是將1 9不重複的填入乙個3 3的矩陣當中,使得每一行 每一列和每一條對角線的和都是相同的。三階幻方又被稱作九宮格,在小學奧數里有一句非常有名的口訣 二四為肩,六八為足,左三右七,戴九履一,五...

藍橋杯 九宮幻方

1.將所有滿足條件的3階幻方列舉出來 使用全排列函式next permutation來實現,函式使用鏈結 2.遍歷所有3階幻方矩陣,統計與輸入矩陣可以匹配的個數 3.include include include include include include using namespace std...

藍橋杯 九宮幻方

問題描述 小明最近在教鄰居家的小朋友小學奧數,而最近正好講述到了三階幻方這個部分,三階幻方指的是將1 9不重複的填入乙個3 3的矩陣當中,使得每一行 每一列和每一條對角線的和都是相同的。三階幻方又被稱作九宮格,在小學奧數里有一句非常有名的口訣 二四為肩,六八為足,左三右七,戴九履一,五居其中 通過這...