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

2021-07-11 16:16:36 字數 1274 閱讀 4791

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

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

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

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

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

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

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

解決思路:先將所有五個一組的情況遍歷,然後用廣度優先判斷是否連通。

我在選五個一組的時候是用的 for 先選出第幾個郵票,然後將其在二維中的位置算出,最後通過廣度優先判斷二維陣列中選中部分連通的位置夠不夠五個。

#include#includeusing namespace std;

struct point

;int main()

else

a[x][y]=1;

}int ans=0;

int book[4][13];//用於將來佇列廣度遍歷時記錄當前位置是否用過

memset(book,0,sizeof(book));

point pos;

pos.x=x;

pos.y=y;

book[x][y]=1;

dequeql;

ql.push_back(pos);

ans++;

while(!ql.empty())

if(a[ql[0].x+1][ql[0].y]&&(ql[0].x+1)<=2&&book[ql[0].x+1][ql[0].y]==0)//down

if(a[ql[0].x][ql[0].y+1]&&(ql[0].y+1)<=3&&book[ql[0].x][ql[0].y+1]==0)//r

if(a[ql[0].x][ql[0].y-1]&&(ql[0].y-1)>=0&&book[ql[0].x][ql[0].y-1]==0)//l

ql.pop_front();

}if(ans==5)

}cout搜尋 coderwangson 關注

第七屆藍橋杯省賽剪郵票

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

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

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

第七屆省賽 題7 剪郵票

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