HNUCM-OJ Problem 1614 幸运数 模拟 最短子段和
发布日期:2021-06-29 14:31:45
浏览次数:2
分类:技术文章
本文共 826 字,大约阅读时间需要 2 分钟。
题目描述
众所周知,不管是人还是熊都需要人品。于是乎,为了给自己找一个幸运数字,Mavis 学习了人类的阿拉伯数字,并不知从哪儿弄来了一串序列和一个 S,Mavis 说:“长度最短且和大于等于 S 的连续子段的长度, 就是俺的幸运数字”!
但是 Mavis 只会喊口号,不会解决问题,所以这个问题就交给你了。
输入
输入文件共三行。第一行输入仅一个正整数 n,意义如题所述。( n ≤ 4000000, ai ≤ 10^9)
第二行输入 n 个正整数 ai,表示序列中的元素。
第三行输入仅一个正整数 S,意义如题所述。
每两个输入的数之间都用一个空格隔开。
输出
输出文件仅一行一个整数,表示幸运数。样例输入
8 4 12 10 18 17 10 17 17 40样例输出
3思路
题目求大于或者等于S的最短子段和,输出最短长度,模拟即可,遍历找出大于或者等于S的区间,然后求出最短区间即可。
代码
#includeusing namespace std;typedef long long ll;const int maxn=5e6+5;ll a[maxn],n,sum;int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>sum; ll res=0,cc=maxn; ll s=1,k=1; while(k<=n){ while(res =sum){ cc=min(cc,k-s); res-=a[s++]; } } cout< <
学如逆水行舟,不进则退
转载地址:https://chocolate.blog.csdn.net/article/details/105032571 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年05月01日 15时58分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Centos 7搭建NTP时间同步服务器
2019-04-29
centos7 基于rsync+inotify 实现定时备份
2019-04-29
指定IP进行 文件的分发
2019-04-29
基于http搭建本地yum仓库
2019-04-29
常规邮件基础
2019-04-29
邮件基础之 -- SMTP协议
2019-04-29
网络基础
2019-04-29
Java设计模式--责任链模式
2019-04-29
基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
2019-04-29
C语言中access/_access函数的使用
2019-04-29
在Windows和Linux上编译gRPC源码操作步骤(C++)
2019-04-29
gtest简介及简单使用
2019-04-29
软件测试培训笔记
2019-04-29
OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤
2019-04-29
单元测试和白盒测试相关总结
2019-04-29
Linux下编辑器vi/vim的使用介绍
2019-04-29
Ubuntu常用命令汇总
2019-04-29
FFmpeg简介及在vc2010下编译步骤
2019-04-29
信息安全领域相关术语介绍
2019-04-29
Linux下gdb调试工具的使用
2019-04-29