第七屆 A7 剪郵票

2021-09-11 18:55:29 字數 1547 閱讀 7377

剪郵票

如【圖1.jpg】, 有12張連在一起的12生肖的郵票。

現在你要從中剪下5張來,要求必須是連著的。

(僅僅連線乙個角不算相連)

比如,【圖2.jpg】,【圖3.jpg】中,粉紅色所示部分就是合格的剪取。

請你計算,一共有多少種不同的剪取方法。

請填寫表示方案數目的整數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

以下有兩種方法,分別是學習了以下兩位大佬的部落格

2023年第七屆藍橋杯c/c++程式設計本科b組省賽 剪郵票(結果填空)

有夢就不怕痛:藍橋杯 c/c++ b組 剪郵票

二者的共同點都是列舉所有可能的五個數的選擇方案,然後搜尋這五個數是否連通。前一位大佬的方法改變了格仔編號的數字,巧妙地解決了數字相鄰格仔不連通的特殊情況。

#include using namespace std;

int solve[5];

int vis[5]; //定義vis陣列記錄對應的元素solve是否能被訪問到

int num[12] = ;

int dir[4] = ;//向左,向右,向上,向下

int ans = 0;

void dfs(int n)

} } //遍歷完當前點的四個方向之後遞迴返回

}int main()

} if(flag) }}

}} }

cout << ans << endl;

return 0;

}

#include #include int chess[6][6]; 

int dx[4]=;

int dy[4]=;

int num[5],ans=0,sum=0,g;

void dfs_2(int sx,int sy)//判斷5個數是否聯通 }

} //index的設立實現了在函式的遞迴呼叫中控制陣列下標的移動,值得學習

void dfs_1(int index,int k)//index代表下標,k代表給num陣列的第index的位置賦值i,代表郵票的某乙個格仔

else

sx=num[j]/4+1;

chess[sx][sy]=1;

} g=1;

chess[sx][sy]=0;

dfs_2(sx,sy);//檢查5個點是否連通

if(g==5)

++ans;

return ;

} else

} }

int main()

第七屆藍橋杯省賽A7 剪郵票

題目描述 如 圖1.jpg 有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,圖2.jpg 圖3.jpg 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任...

第七屆省賽 題7 剪郵票

如 圖1.jpg 有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,圖2.jpg 圖3.jpg 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內...

2016第七屆藍橋杯剪郵票

如 圖1.jpg 有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,圖2.jpg 圖3.jpg 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內...