链接
http://lx.lanqiao.cn/problem.page?gpid=T2662
题目截图
#include <bits/stdc++.h>
using namespace std;
int a[1000066];
long long dp[1000066];
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int n;
cin>>n;
int i;
for(i=1;i<=n;i++)
cin>>a[i];
if(a[1]==1) dp[1]=0;
else dp[1]=1;
if(a[2]==1) dp[2]=0;
else dp[2]=dp[1]+1;
if(a[3]==1) dp[3]=0;
else dp[3]=dp[2]+1+dp[1];
for(i=4;i<=n;i++)
{
if(a[i]==0) {
dp[i]=dp[i-3]+dp[i-2]+dp[i-1];
}
else dp[i]=0;
if(dp[i]>1000000007) dp[i]=dp[i]%1000000007;
}
if(dp[n]==0) cout<<"No Way!"<<endl;
else
cout<<dp[n];
}