题意:给你一个长度为n的序列和一个数m,每个数都是正数,求出一对i,j使得sum[i...j]>=m并且j-i+1最小,并输出这个最小值


首先我们想到的是枚举i,j然后依次判断,但是显然时间复杂度为O(n^2)

有经验的话会知道只需枚举终点或者起点中的一个就可以了,我们选择枚举终点

设前缀和为sum,那么对于终点j我们需要找到一个尽量大的i使得sum[j]-sum[i-1]>=m

那么我们就在枚举每一个j的时候维护这个i的最大值就可以了,当sum[j]-sum[i]>=m时i++

#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=1e5+5,inf=0x3f3f3f3f;
inline void _read(int &x){char t=getchar();bool sign=true;while(t<'0'||t>'9'){if(t=='-')sign=false;t=getchar();}for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0';if(!sign)x=-x;
}
int n,s[maxn],m,sum[maxn],ans;
int main(){int i,j;while(scanf("%d%d",&n,&m)!=EOF){ans=inf;for(i=1;i<=n;i++){_read(s[i]);sum[i]=sum[i-1]+s[i];}i=1;for(j=1;j<=n;j++){if(sum[i-1]>sum[j]-m)continue;while(sum[i]<=sum[j]-m)i++;ans=min(ans,j-i+1);}printf("%d\n",ans==inf?0:ans); }
} 

Live Archieve 2678 Subsequence相关推荐

  1. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  2. UVALive2678:Subsequence

    UVALive2678:Subsequence 题目大意 给定一个数组A和一个整数S.求数组A中,连续且之和不小于S的连续子序列长度最小值. 要求复杂度:Ο(n) Solution 用变量L表示所选区 ...

  3. swift Sequence 和 SubSequence

    1 序列 Sequence 序列协议是集合类型结构中的基础. 一个序列是代表有一系列具有相同类型的值,并且对这些值进行迭代. 协议中主要有两个参数,一个是元素Element,一个就是迭代器Iterat ...

  4. 动态规划—最长公共子序列问题 HDU-1159 Common Subsequence

    动态规划-最长公共子序列问题 Common Subsequence [ HDU - 1159 ] A subsequence of a given sequence is the given sequ ...

  5. 贪心 ---- E. Maximum Subsequence Value[位运算]

    E. Maximum Subsequence Value 题目大意:有点难解释..建议自己看题.我这里就粗略解释:给定一个数组aaa,要求选出具有最大价值的子序列.假设此子序列的长度为kkk,那么最大 ...

  6. 尺取法 POJ 3601 Subsequence

    题目传送门 1 /* 2 题意:求连续子序列的和不小于s的长度的最小值 3 尺取法:对数组保存一组下标(起点,终点),使用两端点得到答案 4 1. 记录前i项的总和,求[i, p)长度的最小值,用二分 ...

  7. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)

    Longest Increasing Subsequence 描述 给出一组长度为n的序列,a1​,a2​,a3​,a4​...an​, 求出这个序列长度为k的严格递增子序列的个数 输入 第一行输入T ...

  8. LeetCode-334. Increasing Triplet Subsequence

    Description: Given an unsorted array return whether an increasing subsequence of length 3 exists or ...

  9. LintCode Longest Increasing Continuous Subsequence

    原题链接在这里:http://www.lintcode.com/en/problem/longest-increasing-continuous-subsequence/ 题目: Give an in ...

最新文章

  1. linux 内核头文件 linux kernel header
  2. linux大小写敏感和windows大小写不敏感(忽略大小写)导致的直接拷贝文件文件名冲突问题(需要打tar包再分享)
  3. b区计算机调剂学校,2021年b区研究生调剂院校有哪些
  4. 动态 SQL、EXECUTE IMMEDIATE、using、into、returning
  5. 配置 Powerline 到 Vim
  6. 如何基于MaxCompute快速打通数据仓库和数据湖的湖仓一体实践
  7. HDU 5985 Lucky Coins 数学
  8. 她拒绝麦肯锡 Offer,建立图片训练数据库,斯坦福 AI 实验室负责人 | 人物志
  9. 列表框、下拉列表框或组合框与数据库
  10. qq发文件大小上限_微信又出新功能!网友:终于不用转QQ了
  11. 华为华三开启snmp服务
  12. Python进阶(十四) logging标准库
  13. [转]Using Named Pipes (FIFOs) with Bash
  14. 使用Liquid实现简单的数据交换
  15. 简单使用Java实现微信公众号推送模板消息
  16. 服务器系统怎么安装网卡驱动,网卡驱动怎么安装,教您网卡驱动的安装操作
  17. python获取电脑屏幕分辨率
  18. configure: error: Package requirements (libwebp) were not met:
  19. Android Studio 中的maven仓库使用
  20. 计算机数字媒体计数专业好就业吗,2019数字媒体技术专业就业形势和就业方向分析...

热门文章

  1. 安装配置postman及插件
  2. 开源日志系统比较:scribe、chukwa、kafka、flume
  3. Power BI连接数据源及数据整理
  4. 记一次线上CPU过高的问题以及处理方案
  5. php disconf,Disconf部署安装
  6. HDFS的shell操作
  7. C语言实现 猴子吃桃子问题 超级详解
  8. mysql数据库sysdate_mysql now() sysdate() 区别
  9. 光伏储能联合并网系统matlab/simlink仿真
  10. 推荐几款大数据、机器学习的宝藏公众号!