先附上题目内容
如【图1.jpg】, 有12张连在一起的12生肖的邮票。
现在你要从中剪下5张来,要求必须是连着的。
(仅仅连接一个角不算相连)
比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。
请你计算,一共有多少种不同的剪取方法。
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这个题目有点像迷宫问题,一开始想的是用dfs算法去遍历出所有的5段长的路径,可是不知道怎么去重。后来还是借助了csdn上的大佬的思路来解题
这个题的规模较小,所以我们可以对1到12暴力枚举出含有5个数的所有组合,然后对每一个组合进行连通性检测,如果是连通的则进行累加。
明白了解题思路之后,来看一下代码实现:
首先需要暴力枚举出所有组合:
public static void main(String[] args) {
int count=0;
for(a[0] = 0;a[0]<12;a[0]++)
for(a[1] = a[0]+1;a