/ Vijos / 题库 /

安全排列

安全排列

时间限制:1秒  内存限制:256M


【题目描述】

  有 \(N\)(\(4\le N\le16\))个不同的整数,其中第 \(i\) 个整数为 \(a_i\)(\(1\le a_i \le 25,000\))。如果把这N个整数排成一列后,相邻的整数之差均超过 \(K\)(\(1\le K \le 3,400\)),那么这个排列是安全的。比如当 \(K=1\) 时,\(3,1,4,2\) 就是安全的;而 \(3,2,4,1\) 不是,因为 \(3\) 和 \(2\) 只差 \(1\)。

  现在请你编程计算,给定 \(N,K\),整数:\(a_1,a_2,…,a_N\) 有多少种安全排列?

【输入格式】

  第一行为两个用空格分隔的整数 \(N\) 和 \(K\)。
  接下来的 \(N+1\) 行,每行一个整数,表示\(a_1,a_2,…,a_N\) 。

【输出格式】

  输出一行答案,表示安全排列数量。保证可以使用 64 位整型存下。

【输入输出样例1】

 Input

4 1 
3 
4 
2 
1 

 Output

2

【数据限制】

  \(20\%\) 的数据满足:\(1≤N≤11\)
  \(100\%\) 的数据满足:\(1≤N≤16\)

【来源】

  Mr.he

信息

ID
3228
难度
9
分类
动态规划 | 状态压缩DP 点击显示
标签
递交数
1
已通过
1
通过率
100%
被复制
2
上传者