666
暂无测试数据。
#include <cstdio>
#include <cstring>
using namespace std;
int n,a[10001],f[10000][2][2];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
memset(f,0,sizeof(f));
if (a[1]==0)
f[1][0][0]=1;
else if (a[1]==1)
f[1][1][0]=f[1][0][1]=1;
else if (a[1]==2)
f[1][1][1]=1;
for (int i=2;i<n;i++)
{
if (a[i]==0)
f[i][0][0]=f[i-1][0][0];
else if (a[i]==1)
{
f[i][0][1]=f[i-1][0][0];
f[i][1][0]=f[i-1][0][1];
f[i][0][0]=f[i-1][1][0];
}
else if (a[i]==2)
{
f[i][1][1]=f[i-1][0][1];
f[i][0][1]=f[i-1][1][0];
f[i][1][0]=f[i-1][1][1];
}
else
f[i][1][1]=f[i-1][1][1];
}
if (a[n]==0)
printf("%d\n",f[n-1][0][0]);
else if (a[n]==1)
printf("%d\n",f[n-1][0][1]+f[n-1][1][0]);
else if (a[n]==2)
printf("%d\n",f[n-1][1][1]);
}
信息
- ID
- 1009
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者