其他分享
首页 > 其他分享> > 尺取法

尺取法

作者:互联网

(传送门)[https://vjudge.net/contest/320030#problem/A]

#include <iostream>
#include <cstdio>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
const int N=1e5+5;
int main(){
    int t,s,n;
    cin>>t;
    int a[N];
    while(t--){
        cin>>n>>s;
        for(int i=0;i<n;i++){scanf("%d",&a[i]);}
        int st=0,en=0;//下标,st表示起始位置,en表示结束位置
        int ans=INF,sum=0;//ans表示答案,sum表示当前
        while(1){
            while(en<n&&sum<s)sum+=a[en++];
            if(sum<s)break;
            ans=min(ans,en-st);
            sum-=a[st++];
        }
        if(ans==INF)ans=0;
        printf("%d\n",ans);
    }
    return 0;
}

标签:int,cin,long,传送门,取法,include,define
来源: https://www.cnblogs.com/Emcikem/p/11429280.html