2016 藍橋杯 省賽 剪郵票(dfs 判重)

2021-07-29 16:21:13 字數 682 閱讀 9590

剪郵票

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

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

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

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

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

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

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

答案:116

如果說用單純的dfs做的話,像2 5 6 7 10 是無法出來的,所以用剪下來的進行dfs判斷就不會漏掉這類情況了

**:

#include#include#includeusing namespace std;

const int maxn=10000;

int hash[maxn];

int vis[3][4];

int tol;

int dir[4][2]=,,,};

void dfs(int cnt)

} if(!hash[tmp])

return ; }

for(int i=0;i<3;i++)}}

} }}int main()

} printf("%d\n",tol);

return 0;

}

藍橋杯 2016省賽 剪郵票

思路 一開始想到dfs套模板來用,可是發現像12346這種無法掃瞄到。從已經剪下來的任乙個點都可以開始dfs。這樣就不會漏掉情況 圖中的123456789101112數字沒有用處。在判斷重複的時候簡單的壓縮一下,2的13次方之內的即可儲存 include include using namespac...

2016 藍橋杯 省賽 剪郵票(dfs 判重)

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

2016 藍橋杯 剪郵票 dfs

這是2016年藍橋杯c語言省賽b組的第七題 題目 如下圖,有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,下面兩張圖中,粉紅色所示部分就是合格的剪取。請你計算,一共有多少種不同的剪取方法。輸出 請填寫表示方案數目的整數。oj鏈結 思路 通過對...