题目分析
尺取法裸题。尺取法详解题目见尺取法题目
代码
#include <cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
const int maxn=1e5+5;
long long a[maxn];
int main()
{
int T;
cin>>T;
while(T--)
{
int n,s;
cin>>n>>s;
int ans=2*n;
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int l=0,r;
long long sum=0;
for(r=0;r<n;r++)
{
sum+=a[r];
if(sum<s) continue;
while(l<r && sum-a[l]>=s)
sum-=a[l],l++;
ans=min(ans,r-l+1);
}
if(ans>n) ans=0;
cout<<ans<<endl;
}
return 0;
}