http://acm.hdu.edu.cn/showproblem.php?pid=5635
题意:给你一串数字 如
5
4 3 2 1 0
4就表示 前4个字母和从第二个开始的4个字母是一样的 也就是说 这5个字母都是一样的
再验证一下 3 从第二个开始的后3个字母 和从第三个开始的后3个字母 都是一样的 成立
首先 只存在连续减小和0的情况 否则都是0
#include <stdio.h>
const int mod=1000000000+7;
int main()
{
int n,a[100005],cas;
__int64 ans;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
for(int i=1;i<n;i++)
{
scanf("%d",&a[i]);
}
ans=26;
int f=1;
for(int i=1;i<n;i++)
{
if(a[i]==0)
{
f=0;
}
if(f==0)
{
f=1;
ans*=25;
ans%=mod;
}
if(a[i-1]!=0&&a[i]!=a[i-1]-1|| a[i]>n-i)
{
ans=0;
break;
}
}
printf("%I64d\n",ans%mod);
}
return 0;
}