问题描述:
题解:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int p = 1e9 + 7;
const int N = 1e5 + 9;
ll dp[N];
bool broken[N];
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n,m;cin >> n >> m;
while(m--){
int i;cin >> i;
broken[i] = true;
}
dp[0] = 1;
if(!broken[1])dp[1] = 1;
for(int i = 2; i <= n; i++)
{
if(broken[i])continue;
dp[i] = (dp[i - 1] + dp[i - 2]) % p;
}
cout << dp[n] << '\n';
return 0;
}
知识点:动态规划