题意:
      给你一个正整数序列,问你在里面找到一个最短的子序列,要求子序列的和大于等于k,输出序列长度。

思路:
      这个序列的每个数字都是正整数,那么就比较好想了,我们可以直接枚举终点,然后每次当当前和大于等于k的时候就把前面的markid(markid初始为1)点缩进,得到前端(我的是得到前端的下一个,这个无所谓,就是一个加不加1的事),然后更新最小值就行了,这样的时间复杂度是O(n)的,还有一个O(n*logn)的方法,就是白书上说的那个,我们可以枚举终点,然后二分去找起点,因为所有数字都是正整数,所以是单调的,找到最靠后的起点作为当前终点的起点,然后更新最小值就行了。

#include<stdio.h>

#define N 100000 + 10

int num[N];

int main ()
{
  int n ,m ,i ,Ans;
  while(~scanf("%d %d" ,&n ,&m))
  {
      for(i = 1 ;i <= n ;i ++)
      scanf("%d",&num[i]);
      int nows = 0 ,nowid;
      for(Ans = 0 ,nowid = 1 ,i = 1 ;i <= n ;i ++)
      {
         nows += num[i];
         if(nows >= m)
         {
            while(nows - num[nowid] >= m)
            {
                nows -= num[nowid];
                nowid ++;
            }
            if(!Ans || Ans > i - nowid + 1)
            Ans = i - nowid + 1;
         }
      }
      printf("%d\n" ,Ans);
   }
   return 0;
}

LA2678最短子序列相关推荐

  1. [JAVA]寻找满足和的最短子序列(Minimum Size Subarray Sum)

    题目来源:leetcode 题目描述: Given an array of n positive integers and a positive integer s, find the minimal ...

  2. UVa 11536 最短子序列(Smallest Sub-Array)

    题意: 有n个0~m-1的整数组成一个序列.输入k,你的任务是尽量找到一个短一点的连续子序列使得该序列包含1-k的所有整数. 最大序列是生成的,生成在代码中 分析: 二分查找一个位置,长度a不成立 b ...

  3. 【BZOJ】4032: [HEOI2015]最短不公共子串(LibreOJ #2123)

    [题意]给两个小写字母串A,B,请你计算: (1) A的一个最短的子串,它不是B的子串 (2) A的一个最短的子串,它不是B的子序列 (3) A的一个最短的子序列,它不是B的子串 (4) A的一个最短 ...

  4. nyoj 133 子序列(尺取法+离散化)

    子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 8 ...

  5. 字符串ababaaab的nextval数组值序列为_子序列解题模板:最长回文子序列

    预计阅读时间:6 分钟 子序列问题是常见的算法问题,而且并不好解决. 首先,子序列问题本身就相对子串.子数组更困难一些,因为前者是不连续的序列,而后两者是连续的,就算穷举都不容易,更别说求解相关的算法 ...

  6. java最长回文子序列_算法--字符串:最长回文子序列

    转自:labuladong公众号 子序列问题是常见的算法问题,而且并不好解决. 首先,子序列问题本身就相对子串.子数组更困难一些,因为前者是不连续的序列,而后两者是连续的,就算穷举都不容易,更别说求解 ...

  7. 两道小学生的题----1000: 梦里的难题、1002: 拳皇

    黑色的飞鸟掠过天空,我站在城中,看时间燃成灰烬,哗哗作响...... 题目描述 生化危机血腥暴力的场面对小星星的冲击很大,晚上频繁地做起了梦,梦里他担负起拯救世人消灭僵尸的重任,眼看就能拿到消除 T ...

  8. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  9. 1000: 梦里的难题

    1000: 梦里的难题 时间限制: 1 Sec 内存限制: 128 MB 题目描述 生化危机血腥暴力的场面对小星星的冲击很大,晚上频繁地做起了梦,梦里他担负起拯救世人消灭僵尸的重任,眼看就能拿到消除 ...

最新文章

  1. 史上世界上最惨烈的几次股灾!
  2. 设置为true有什么区别_腻子粉和腻子膏到底有什么区别,腻子粉厂家来为你讲解...
  3. win7怎么启动对远程服务器的登陆,深度Win7旗舰版如何开启telnet服务使用远程登录...
  4. getmenuiteminfo无法读取内存_笔记本内存加装教程,看完包会!为了这篇文章,我把电脑都拆了!...
  5. Yii调用参数配置文件params
  6. OpenStack 的部署T版(三)——Glance组件
  7. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列详解
  8. IDEA的基本使用:让你的IDEA有飞一般的感觉 | CSDN 博文精选
  9. 使用Grunt构建自动化开发环境
  10. Linux下那些查找命令
  11. 编程修养 阅读笔记四
  12. 信息系统开发平台OpenExpressApp - 支持日志功能
  13. oracle数据库的重复数据处理
  14. 【个人笔记】OpenCV4 C++ 快速入门 23课
  15. 【进阶】PyTorch自定义CUDA算子教程与运行时间分析
  16. 梯度下降优化器小结(RMSProp,Momentum,Adam)
  17. Mstar的Monitor方案笔记(七)——EDID基本数据结构
  18. 翻译和本地化的区别及应用
  19. 抓住七月的尾巴,出门放松一下
  20. 举个栗子!Tableau 技巧(113):在工作表中嵌入可切换网页

热门文章

  1. [20170606]11G _optimizer_null_aware_antijoin.txt
  2. python -scikit
  3. C语言成长学习题(十六)
  4. Spark SQL 源代码分析系列
  5. OSPF路由聚合实验(详细)
  6. Vmware中安装RHEL5
  7. 关于vmware workstation10常见问题
  8. 【JSOI2008】最大数 线段树
  9. tomcat的JK和JK2
  10. ZOJ Problem Set - 1048 Financial Management