理解:一棵树,把有问题的树枝去掉,问剩下多少树枝
状态转移方程就是斐波那契额数列,这里因为有楼梯坏掉进行跳过,是变式
#include<bits/stdc++.h>using namespace std;
const int N=1e5+9;
const int p=1e9+7;
int n,M;
bool broken[N];
long long dp[N];int main()
{cin>>n>>M;//破损条件for(int i=1;i<=M;i++){int x;cin>>x;broken[x]=true;}//dp[]数组dp[0]=1;if(!broken[1])dp[1]=1;for(int i=2;i<=n;i++){if(broken[i]==1)continue;dp[i]=(dp[i-1]+dp[i-2])%p;}cout<<dp[n]<<'\n';return 0;
}