//Quiz 2 Rizki Farih Ardian
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n;
cin >> n;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
vector<int> dp(n + 2, 0);
for (int i = n; i >= 1; i--) {
dp[i] = dp[i + 1];
int blok_selesai = i + a[i];
if (blok_selesai <= n) {
dp[i] = max(dp[i], 1 + a[i] + dp[blok_selesai + 1]);
}
}
cout << n - dp[1] << "\n";
}
int main () {
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
Ly9RdWl6IDIgUml6a2kgRmFyaWggQXJkaWFuCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgCiAgICB2ZWN0b3I8aW50PiBhKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgCiAgICB2ZWN0b3I8aW50PiBkcChuICsgMiwgMCk7CiAgICAKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkgewogICAgICAgIGRwW2ldID0gZHBbaSArIDFdOwogICAgICAgIAogICAgICAgIGludCBibG9rX3NlbGVzYWkgPSBpICsgYVtpXTsKICAgICAgICBpZiAoYmxva19zZWxlc2FpIDw9IG4pIHsKICAgICAgICAgICAgZHBbaV0gPSBtYXgoZHBbaV0sIDEgKyBhW2ldICsgZHBbYmxva19zZWxlc2FpICsgMV0pOwogICAgICAgIH0KICAgIH0KICAgIAogICAgY291dCA8PCBuIC0gZHBbMV0gPDwgIlxuIjsKfQoKaW50IG1haW4gKCkgewogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==