#include <bits/stdc++.h>
using namespace std;
int d[55];
int f(int x)
{
int ret=0;
while(x)
{
if(x&1)
break;
ret++;
x>>=1;
}
return ret;
}
bool judge(int st,int ed)
{
int i,mx,index;
mx=-1;
for(i=st;i<=ed;i++)
{
if(d[i]==mx)
return 0;
if(d[i]>mx)
{
mx=d[i];
index=i;
}
}
if(mx==0&&st!=ed)
return 0;
for(i=st;i<=ed;i++)
{
if(i!=index&&(d[i]!=f(abs(i-index))))
return 0;
}
return 1;
}
int main()
{
int T,i,j,n,sum;
cin>>T;
while(T--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&d[i]);
sum=0;
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(judge(i,j))
sum++;
else
break;
}
}
printf("%d\n",sum);
}
}
51nod 1320 合法尾数序列
最新推荐文章于 2017-08-23 15:30:56 发布