藍橋杯五7六角填空暴力ORdfs

2021-07-10 05:51:30 字數 1152 閱讀 2584



如圖【1.png】所示六角形中,填入1~12的數字。

使得每條直線上的數字之和都相同。

圖中,已經替你填好了3個數字,請你計算星號位置所代表的數字是多少?

請通過瀏覽器提交答案,不要填寫多餘的內容。

暴力:

#include #include#includeusing namespace std;

int main()

{ int a[13],t;

for(int i=0;i<12;i++)

a[i]=i+1;

while(next_permutation(a,a+12))

{t=a[1]+a[2]+a[3]+a[4];

if(a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7]

&&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10])

{cout總結:next_permutation(a,a+12)這個函式是全排列函式,標頭檔案為algorithm

法二:dfs

#include #include#include#includeusing namespace std;

int a[13];

bool vis[13];

void dfs(int k)

{ int t=a[1]+a[2]+a[3]+a[4];

if(k==12&&a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7]

&&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10])

{cout總結:多找些dfs型別的題目做,因為掌握的還不好

藍橋杯 六角填數

如圖 1.png 所示六角形中,填入1 12的數字。使得每條直線上的數字之和都相同。陣列分配 2 4 5 6 7 8 9 10 11 12 圖中,已經替你填好了3個數字,請你計算星號位置所代表的數字是多少?請通過瀏覽器提交答案,不要填寫多餘的內容。簡單的列舉排列,只要提前將12個結點標號,來判斷六個...

藍橋杯 六角幻方

把 1 2 3 19 共19個整數排列成六角形狀,如下 要求每個直線上的數字之和必須相等。共有15條直線哦!再給點線索吧!我們預先填好了2個數字,第一行的頭兩個數字是 15 13,參見圖 p1.png 黃色一行為所求。請你填寫出中間一行的5個數字。數字間用空格分開。這是一行用空格分開的整數,請通過瀏...

14年藍橋杯 六角填數

如圖所示六角形中,填入1 12的數字。使得每條直線上的數字之和都相同。圖中,已經替你填好了3個數字,請你計算星號位置所代表的數字是多少?請通過瀏覽器提交答案,不要填寫多餘的內容。答案為 10 解題思路 將1 12剩餘沒填入的數字放入乙個陣列中,對他進行全排列,並判斷每一種排列是否符合條件 inclu...