绳子对折
题目描述
FJ 有一个长度为 L(1 ≤ L ≤ 10,000)的绳子。这个绳子上有 N(1 ≤ N ≤ 100)个结,包括两个端点。FJ 想将绳子对折,并使较短一边的绳子上的结与较长一边绳子上的结完全重合
找出FJ有多少种可行的折叠方案。
输入格式
第一行:两个整数,N 和 L。
第 2 至 N+1 行:每一行包含一个整数表示一个结所在的位置,总有两个数为 0 和 L。
输出格式
第一行: 一个整数表示FJ可折叠的方案数。
样例 #1
样例输入 #1
```
5 10
0
10
6
2
4
```
样例输出 #1
```
4
```
提示
(可在 1,2,3,8 点处折叠)
思路
这道题可以看出是道dfs的题
完整代码
枚举位置时的技巧:长度 l∗2,储存时将结的位置∗2,这样枚举时就可以以 1 为跨度,可以不用 double
判断:从对折点依次向两端枚举,遇到数值不同的两个位置(即一个点是结,另一个点不是结)即可判定不合法