dd爱框框(滑动窗口)

国家医保移动支付国密算法SM2签名验签、SM4加解密DLL DLL,非.net开发,所以无需安装配置,直接程序引用开发即可,支持各类开发语言。已知省份有广西、贵州、安徽、河北、黑龙江、湖南、吉林、江苏、四川、新疆等各地方。国家医保移动支付国密算法SM2签名验签、SM4加解密DLL。//SM4加密与解密。支持医保移动支付(国家统一版),//SM2签名与验签。 阅读详情

dd爱框框

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述 

读入n,xn,x,给出nn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r],使a[l]+a[l+1]+……+a[r]≥xa[l]+a[l+1]+……+a[r]≥x,若存在相同长度区间,输出ll最小的那个

输入描述:

第一行两个数,n(1≤n≤10000000),x(1≤x≤10000)
第二行n个数a[i](1≤a[i]≤1000)

输出描述:

输出符合条件l,r(保证有解)

示例1

输入

复制

10 20
1 1 6 10 9 3 3 5 3 7

输出

复制

3 5
/*
*@Author:   GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<list>
#include<set>
#include<iomanip>
#include<cstring>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<cassert>
#include<sstream>
#include<algorithm>
using namespace std;
const int mod=1e9+7;
typedef long long  ll;
#define ull unsigned long long
#define scf(n) scanf("%d",&n)
#define scfl(n) scanf("%lld",&n)
#define prf(n) printf("%d",n)
#define prfl(n) printf("%lld",n)
#define scfd(n) scanf("%lf",&n)
#define prfd(n) printf("%.lf",n)
#define ls (rt<<1)
#define rs (rt<<1|1)
#define mid (l+r)/2
#define mms(x, y) memset(x, y, sizeof x)
#define over(i,s,t) for(register long long i=s;i<=t;++i)
#define lver(i,t,s) for(register long long i=t;i>=s;--i)
const int MAXN = 305;
const int INF = 0x3f3f3f3f;
const int N=5e4+7;
const int maxn=1e5+5;
const double EPS=1e-10;
const double Pi=3.1415926535897;
inline double max(double a,double b){
    return a>b?a:b;
}
inline double min(double a,double b){
    return a<b?a:b;
}
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<<1)+(x<<3)+c-'0';c=getchar();}
    return x*f;
}
int xd[8] = {0, 1, 0, -1, 1, 1, -1, -1};
int yd[8] = {1, 0, -1, 0, -1, 1, -1, 1};
 
//fastPow
int fastPow(int x,int n){
    if(n==1) return x;
    int tmp=fastPow(x,n/2); //fenzi
    if(n%2==1) return tmp*tmp*x;
    else return tmp*tmp;
}
ll gcd(ll m, ll n){return n == 0 ? m : gcd(n, m%n);}
ll lcm(ll m, ll n){return m*n / gcd(m, n);}
ll pows(ll base, ll power,ll mod){ll result=1;while(power>0){if(power&1){result=result*base%mod;}power>>=1;base=(base*base)%mod;}return result;}
 
ll poww(ll base, ll power){ll result=1;while(power>0){if(power&1){result=result*base;}power>>=1;base=(base*base);}return result;}


//dijsktra
//start
//const int MAX= 10020;
//struct node {
//    int x,to,next,w;
//    bool operator <(const node &a) const{
//        return this->w>a.w;
//    }
//}G[MAX<<1];
//int cnt;
//int dis[MAX];
//int vis[MAX];
//int head[MAX];
//
//
//int m,n;
//int b[10020];
//
//
//void add(int u,int v,int w){
//    G[++cnt].to=v;
//    G[cnt].w=w;
//    G[cnt].next=head[u];
//    head[u]=cnt;
//}
//int  dijkstra(int s){
//    mms(dis,INF);
//    dis[s]=0;
//    priority_queue<node> p;
//    node t;
//    t.x=s;
//    t.w=0;
//    p.push(t);
//    while (!p.empty()) {
//        node u=p.top();
//        p.pop();
//        int v=u.x;
//        if(dis[v]!=u.w) continue;
//        for(int i=head[v];i;i=G[i].next){
//            int to=G[i].to;
//            if(dis[to]>dis[v]+G[i].w){
//                dis[to]=dis[v]+G[i].w;
//                t.x=to;
//                t.w=dis[to];
//                p.push(t);
//            }
//
//        }
//    }
//    int m1=-1;
//        int m2=-1;
//        dis[s]=-3;
//        for(int i=1;i<=n;i++){
//            if(dis[i]==INF) continue;
//            if(dis[i]>m1){
//                m2=m1;
//                m1=dis[i];
//            }
//            else if(dis[i]>m2){
//                m2=dis[i];
//            }
//        }
//        if(m1!=-1&&m2!=-1) return m1+m2;
//        return -1;
//
//}
//
//
//int main(){
//    int t;
//    cin>>t;
//    while (t--) {
//        cin>>n>>m;
//        int u,v,w;
//
//        for(int i=1;i<=m;i++){
//            cin>>u>>v>>w;
//            add(u,v,w);
//            add(v,u,w);
//        }
//        int ans=0;
//        int cnt=0;
//        for(int i=1;i<=n;i++){
//            ans=max(ans,dijkstra(i));
//        }
//        cout<<ans<<endl;
//    }
//}
//end


//e_cheak
//int vis[1000010];
//int prime[100010];
//int  e_cheak(int n){   //k为2-n素数的个数
//    for(int i=0;i<=n;i++){
//        vis[i]=0;
//    }
//    for(int i=2;i*i<=n;i++){
//        if(!vis[i]){
//            for(int j=i*i;j<=n;j+=i){
//                vis[j]=1;
//            }
//        }
//    }
//    int k=0;
//    for(int i=2;i<=n;i++){
//        if(!vis[i])
//            prime[k++]=i; //统计素数
//    }
//    return k;
//}
//
////进制转化 x转化为y进制
//string work(int x,int y){
//    string str="";
//    while(x){
//        if(x%y>=10) str+=x%y+'A'-10;
//        else str+=x%y+'0';
//        x/=y;
//    }
//    reverse(str.begin(),str.end());
//    return str;
//}
//
//
//const int MAX=1000005;
//char str[MAX];
//char pattern[MAX];
//int cnt;
//int Next[MAX];
//void  getnext(string p,int plen){
//    Next[0]=0;
//    Next[1]=0;
//    for(int i=1;i<plen;i++){
//        int j=Next[i];
//        while (j&&p[i]!=p[j]) {
//            j=Next[j];
//        }
//        Next[i+1]=(p[i]==p[j])?j+1:0;
//    }
//}
//int kmp(string s,string p){
//    int last=-1;
//    int slen=s.length();
//    int plen=p.length();
//    getnext(p,plen);
//    int j=0;
//    for(int i=0;i<slen;i++){
//        while (j&&s[i]!=p[j]) {
//            j=Next[j];
//        }
//        if(s[i]==p[j]) j++;
//        if(j==plen){
//            //start
//            return 1;
//            //end
//        }
//    }
//    return 0;
//}
//int main(){
//    int n;
//    cin>>n;
//    string t;
//    string s="";
//    for(int i=2;i<=16;i++){
//        s="";
//        s+=work(n,i);
//        if(kmp(s,t))
//        {
//            cout<<"yes";
//            return 0;
//        }
//    }
//    cout<<"no"<<endl;
//    return 0;
//}


//string s1,s2;
//int main(){
//    cin>>s1;
//    s2="cocacola";
//    int ans;
//    for(int i=0;i<s1.length();i++){
//        if(s1[i]!=s2[i])
//            ans++;
//    }
//    cout<<ceil(ans/2);
//}

int n,x;
int a[10000010];
int main(){
    cin>>n>>x;
    for(int i=0;i<n;i++) cin>>a[i];
    int sum=0;
    int l=0;
    int r=0;
    int ansl=0;
    int anslen=n;
    while (r<n) {
        sum+=a[r++];
        while (sum-a[l]>=x) { //一直大就一直减
            sum-=a[l++];
        }
        if(sum>=x&&anslen>r-l){ //维护最小
            ansl=l;
            anslen=r-l;
        }
    }
    cout<<ansl+1<<" "<<anslen+ansl;
}

Decoder如何工作、Transformer如何训练、以及exposure bias问题 1、结合图文描述Decoder中各个模块是什么,以及是如何工作的。2、transformer是如何训练的。3、exposure bias问题造成的原因及解决方法 阅读详情

相关推荐

光度立体三维重建——光源标定

光源标定的目的是为了确定光源方向或强度,一般利用物体表面的明暗信息、阴影信息或者反射特性三类信息中的其中一种即可,也可以将三种信息结合。采用不同标定物,是利用不同标定物的反射特性获取更加精确的光源信息。

wfengzi5的博客 1561

C++使用min,max过程中出现无法找到标识符的问题

1、出问题的原因以及解决方案 (1)可能存在多种库包含using namespace std;等相关的min,max库,引起的冲突。 解决方案:尽量少直接使用using naspece std;命名空间,可以使用std::min,或者std::max作用于来操作。 (2)可能存在min,max里面的参数类型不一致引起的问题。 例如 int num1 = 100; long num2 = 1000; std::min(num1,num2); 在上述例子中,就会出现min报错,可以通过将min函数里面的参数强

平凡 8752

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 498

UVA-10935 Throwing cards away I

#include<iostream> #include<algorithm> #include<cmath> #include<iomanip> #include<string> #include<cassert> #include<cctype> #include<memory.h> #include<cstdio> #include<sstream> #include<vect.

努力写代码的小柯基的博客 307

别再乱选WiFi信道了!手把手教你用WiFi Analyzer优化2.4G/5G家庭网络(附避坑指南)

本文详细介绍了如何使用WiFi Analyzer工具优化家庭WiFi网络,解决2.4GHz和5GHz信道的冲突问题。通过分析信道拥堵原因、提供安装使用指南及优化策略,帮助用户显著提升网络速度与稳定性,特别适合密集住宅区和多设备家庭。

weixin_42665725的博客 5879

Matlab实战:用DQN算法让机器人学会自主避障(附完整代码)

本文详细介绍了如何使用Matlab实现DQN(深度Q网络)算法,使机器人在复杂环境中学会自主避障。通过环境建模、网络架构设计、奖励函数优化及实战调试,提供了完整的代码实现和训练策略,帮助开发者快速应用于机器人路径规划项目。

t8u9v0w1x的博客 232

[CSP冲刺]代码常见错误总结

CSP冲刺——代码常见错误总结

Panda_Hu's blog 3055

双层优化入门(1)—基本原理与求解方法(附matlab代码)

双层优化问题(Bilevel Programming Problems),也被称为双层规划,最早由Stackelberg与1934年在经济学相关研究中提出,因此也被称为Stackelberg问题。双层规划问题一般具有层次性、独立性、冲突性、优先性和自主性等特点。 本文介绍了双层优化的原理与求解方法,并提供了相应的matlab代码供参考学习。

配电网和matlab的博客 5万+

小白笔记:编程常出疑难错误

小白编程的自我修养

xungegeer的博客 228

1.2 博图TIA的轨迹(Trace)功能介绍

在TIA中“轨迹” ( Traces ) 能来记录设备变量并对记录进行评估,对有些故障排查很有帮助,本文进行介绍

qq_34047402的博客 1646

YOLO26全网首发:CVPR2026 FAA| 解决YOLO Neck跨尺度方向冲突--- FAAFusion频域对齐融合模块 | 暴力涨点篇

本文改进:FAAFusion引入YOLO neck ,代替nn.Upsample和Concat

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 643

第25次CCF计算机软件能力认证——未初始化警告

出现过,即存在 j

liu1526246800的博客 263

YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破

目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。

FJN110的博客 148

滑动窗口->dd爱框框

所以:当找到大于等于x的值时,right可以不用返回。1.进窗口:sum += array[right];3.出窗口:sum -= array[left];因此可以使用滑动窗口优化暴力解法。2.判断:sum >= x 时出窗口。灵活更新结果(满足结果后)因为元素都是大于0的。

robin_suli的博客 731

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

强化训练:day4(BC149 简写单词、dd爱框框、除2!)

BC149 简写单词dd爱框框除2!,分别涉及模拟、滑动窗口、堆(优先级队列)的内容。模拟题没什么好说的,对于滑动窗口,本质就是用双指针来维护一个符合条件的区间,然后不断进窗口和出窗口,一直找到所有符合条件的结果,一般就是用于一段子区间求和,上面的例题就是典型的滑动窗口问题,多画图多看多走读代码就能理解了。而最后一个题就是堆的简单使用,不理解的话可以看看有关堆的相关知识,在这我就贴一个链接,有兴趣的可以看看堆的知识。二叉树与堆。

忘忧. 646

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【错题集-编程题】dd爱框框(同向双指针 / 滑动窗口)

这道题一看完,我的第一反应是前缀和,因为题目给的公式和前缀和很像,于是就往前缀和方向去想了,最后只过了 20% 的样例,我认为是数据范围的关系(因为按照题目所给的数据范围,前缀和是会超时的)。总不可能用两层 for 循环嵌套暴力解法吧,肯定超时(果然,也是只过了 20% 的样例)。,我晕),在写这道题目时,想到了思路,也知道可以减少比较次数的位置,但还是没能绕开两层 for 循环这个结构,其实滑动窗口就是在暴力解法上进行优化的。但这道题如果数组中有负数,就得采用前缀和了。同向双指针(其实也就是。

Elena's Blog 616

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

笔试题3 -- dd爱框框(滑动窗口内值加和大于x的最小区间)

对于这道题尝试了三种不同的方法,其中滑动窗口可以很好的解决重复遍历的浪费,保证了时间复杂度为O(n),分别使用两个指针控制访问数组的节奏,不走回头路,最大程度的实现了提升算法效率。

螺蛳粉只吃炸蛋的走风的博客 1067

【算法手记3】dd爱框框 && 除2!

包含两道题目:dd爱框框&除2!。包含两道题目的解题思路及完整解题代码.

C/C++领域,数据结构,linux,MySQl学习者 910

刷题强训(day03) -- 简写单词、dd爱框框、除2!

C++ 刷题笔记!

uyeonashi的博客 452

【滑动窗口】dd爱框框 / 水果成篮 / 找到字符串中所有字母异位词 / 串联所有单词的子串 / 最小覆盖子串

dd爱框框 / 水果成篮 / 找到字符串中所有字母异位词 / 串联所有单词的子串 / 最小覆盖子串

小羊的博客 555

【笔试训练】简单写词|dd爱框框|除2!

本文介绍了三道编程题的解题思路和代码实现。第一题“简单写词”通过循环输入单词并判断首字母大小写,输出相应结果。第二题“dd爱框框”使用滑动窗口技术,通过维护窗口内的和来找到满足条件的最短子数组。第三题“除2!”利用大根堆处理偶数元素,通过多次除以2操作来达到目标。每道题都详细说明了思路和代码实现,帮助读者理解并掌握相关算法技巧。

如果需要沟通,可添加微信公众号找我免费答疑 354

【C++笔试强训】day03

用sum维护窗口中的元素之和,i枚举左区间,j枚举右区间,j遍历过的元素都累加到sum中(加入到窗口),i遍历过的元素都从sum中剔除(移出窗口);用len维护一个满足窗口内元素之和大于等于x的最小区间的长度,一旦发现有更小的窗口长度,那就将窗口区间的下标保存在l和r中,最后打印。每轮取出最大的偶数,然后将其减半后的值从sum减去,如果它也是偶数,那么继续加到堆中,直到堆中没有元素或者k等于0时,打印sum。遍历字符串s的同时,如果遇到了空格,就把空格后面的字符(转大写)加到t中。

Man9o 727

【笔试强训】Week1:点击消除,数组中两个字符串的最小距离,dd爱框框,腐烂的苹果,大数乘法

本文介绍了三种算法题解及IO优化方法。首先针对Java输入输出效率问题,提出了自定义快速读写类Read的方案,通过BufferedReader和StringTokenizer提升IO性能。然后分别解决三个算法问题:1) 使用StringBuilder模拟栈结构实现字符串相邻字符消除;2) 通过双指针动态规划求数组中两个字符串的最小距离;3) 采用滑动窗口算法寻找满足和值条件的最短连续子数组。这些解决方案通过优化数据结构和算法策略,有效提升了处理效率,特别适用于大规模数据场景。

记录了从0学习Java技术栈的日常 401

笔试强训(三)

【代码】笔试强训(三)

weixin_60668256的博客 240

【daily practice】最短达标子数组怎么找?滑动窗口+堆贪心实战三连

这篇笔记整理了牛客笔试强训的三道题:第一道把句子中每个单词的首字母转大写后拼接,练的是边界模拟;第二道找和大于等于目标值的最短子数组,标准滑动窗口写法之外,文中还给出了 O(n) 的双指针优化版;第三道用大根堆贪心,每次把当前最大的偶数减半,让数组总和尽量小。每道题都附了完整代码、复杂度分析和易错点提醒,适合刷题时对照复习。

feng_qi0325的博客 228

【笔试刷题】笔记1

牛客网刷题的笔记

2301_80277275的博客 554
上一篇: 黑白边(并查集)
下一篇: 牛客练习赛33题解
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值