判重的**有點巧妙,慢慢瞧瞧,就會懂的
剪郵票如【圖1.jpg】, 有12張連在一起的12生肖的郵票。
現在你要從中剪下5張來,要求必須是連著的。
(僅僅連線乙個角不算相連)
比如,【圖2.jpg】,【圖3.jpg】中,粉紅色所示部分就是合格的剪取。
請你計算,一共有多少種不同的剪取方法。
請填寫表示方案數目的整數。
注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。
答案:116
如果說用單純的dfs做的話,像2 5 6 7 10 是無法出來的,所以用剪下來的進行dfs判斷就不會漏掉這類情況了
**:
#include
#include
#include
using
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++)}
}}}}
intmain()
}printf
("%d\n"
,tol)
;return0;
}
這篇的想法比較溜: 藍橋杯 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鏈結 思路 通過對...