#include<bits/stdc++.h>

#define rd(x) x=read()

#define N 3005
#define inf 1e9

using namespace std;

int T;
int n;
int a[N];
int f[N][N];

inline int read()
{
	int x=0,f=1;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();
	return x*f;
}

int main()
{
	rd(T);
	while(T--)
	{
		rd(n);
		for(int i=1;i<=n;i++)rd(a[i]);	
		for(int i=2;i<=n;i++)
		{
			int cnt=0;
			for(int j=i;j<=n;j++)f[i][j]=inf;
			for(int j=i-1;j>=1;j--)
				if(a[j]+j>=i)
					f[i][a[j]+j]=min(f[i][a[j]+j],f[j][i-1]+cnt++);
            for(int j=i+1;j<=n;j++)f[i][j]=min(f[i][j],f[i][j-1]);
		}
		cout<<f[n][n]<<endl;
	}
	
	return 0;
}
