剪郵票
如【圖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 中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內...