给定严格递增且互不相同的正整数数组,要求统计所有非空子序列,使得子序列中相邻两个元素的差都不等于 1。
由于数组有序且无重复,当我们把某个元素 a[i] 追加到一个已合法的子序列末尾时,唯一可能产生违例的情况就是前一个被选中的元素等于 a[i]-1。而 a[i]-1 若存在,只可能是 a[i-1](因为数组严格递增)。因此只需分两类讨论:
a[i] == a[i-1] + 1:新子序列末尾不能是 a[i-1],因此可追加的前缀子序列只能来自前 i-2 个元素。a[i]-1 的元素,a[i] 可以接在前 i-1 个元素形成的任意合法子序列后面。据此设计简单 DP:
给定一个长度为 n 的正整数数组 a ,数组已按升序排列目元素互不相同 (ai<ai+1) 。
统计所有非空子序列(保持原序),使得子序列中任意相邻两个元素之差均不等于 1 的方案数。由于答案可能很大,请对 109+7 取模后输出。
【名词解释】