对于序列{a} 求其连续子序列{b} 满足 b[i]>=i,有几个? 比如 1 4 6 7 3 ,
[3],[1,4] [6,7,3]都是合法的
双指针的题
#include <iostream>
#include <algorithm>
using namespace std;
const int N=2e5+4;
#define int long long
int n,a[N];
void solve(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
int x=1,y=1,ans=0;
while(x<=n){
while(y<=n&&y-x+1<=a[y]) y++;
ans+=y-x;
x++;
}
cout<<ans<<endl;
}
signed main(){
int cas;
cin>>cas;
while(cas--) solve();
}