题意:

在一个长度为n的序列中,找到最短的长度序列,使其和大于等于s;

思路:

two pointer ,水题;

Ac代码:

  1. #include <bits/stdc++.h>
  2. /*
  3. #include <vector>
  4. #include <iostream>
  5. #include <queue>
  6. #include <cmath>
  7. #include <map>
  8. #include <cstring>
  9. #include <algorithm>
  10. #include <cstdio>
  11. */
  12. using namespace std;
  13. #define For(i,j,n) for(int i=j;i<=n;i++)
  14. #define Riep(n) for(int i=1;i<=n;i++)
  15. #define Riop(n) for(int i=0;i<n;i++)
  16. #define Rjep(n) for(int j=1;j<=n;j++)
  17. #define Rjop(n) for(int j=0;j<n;j++)
  18. #define mst(ss,b) memset(ss,b,sizeof(ss));
  19. typedef long long LL;
  20. template<class T> void read(T&num) {
  21. char CH; bool F=false;
  22. for(CH=getchar();CH<''||CH>'';F= CH=='-',CH=getchar());
  23. for(num=;CH>=''&&CH<='';num=num*+CH-'',CH=getchar());
  24. F && (num=-num);
  25. }
  26. int stk[], tp;
  27. template<class T> inline void print(T p) {
  28. if(!p) { puts(""); return; }
  29. while(p) stk[++ tp] = p%, p/=;
  30. while(tp) putchar(stk[tp--] + '');
  31. putchar('\n');
  32. }
  33.  
  34. const LL mod=1e9+;
  35. const double PI=acos(-1.0);
  36. const LL inf=1e18;
  37. const int N=2e5+;
  38. const int maxn=;
  39. const double eps=1e-;
  40.  
  41. int a[N],sum[N];
  42.  
  43. int main()
  44. {
  45. int n,s;
  46. while(cin>>n>>s)
  47. {
  48. sum[]=;
  49. For(i,,n)read(a[i]),sum[i]=sum[i-]+a[i];
  50. int l=,r=;
  51. int ans=*n;
  52. For(i,,n)
  53. {
  54. l=i-;
  55. while(sum[r]-sum[l]<s&&r<=n)r++;
  56. if(r<=n)ans=min(ans,r-l);
  57. }
  58. if(ans<=n)cout<<ans<<"\n";
  59. else cout<<""<<"\n";
  60. }
  61.  
  62. return ;
  63. }

LA-2678 (尺取法)的更多相关文章

  1. 【UVALive】2678 Subsequence(尺取法)

    题目 传送门:QWQ 分析 一开始没看到都是正整数根本不会做...... 看到了就是水题了.(但还是sb WA了一发) 尺取法搞一搞 代码 #include <bits/stdc++.h> ...

  2. 5806 NanoApe Loves Sequence Ⅱ(尺取法)

    传送门 NanoApe Loves Sequence Ⅱ Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/131072 K ...

  3. POJ3061 尺取法

    题目大意:从给定序列里找出区间和大于等于S的最小区间的长度. 前阵子在zzuli OJ上见过类似的题,还好当时补题了.尺取法O(n) 的复杂度过掉的.尺取法:从头遍历,如果不满足条件,则将尺子尾 部增 ...

  4. POJ 2739 Sum of Consecutive Prime Numbers(尺取法)

    题目链接: 传送门 Sum of Consecutive Prime Numbers Time Limit: 1000MS     Memory Limit: 65536K Description S ...

  5. CF 701C They Are Everywhere(尺取法)

    题目链接: 传送门 They Are Everywhere time limit per test:2 second     memory limit per test:256 megabytes D ...

  6. nyoj133_子序列_离散化_尺取法

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

  7. Codeforces 676C Vasya and String(尺取法)

    题目大概说给一个由a和b组成的字符串,最多能改变其中的k个字符,问通过改变能得到的最长连续且相同的字符串是多长. 用尺取法,改变成a和改变成b分别做一次:双指针i和j,j不停++,然后如果遇到需要改变 ...

  8. POJ 3061 (二分+前缀和or尺取法)

    题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...

  9. POJ 3320 尺取法,Hash,map标记

    1.POJ 3320 2.链接:http://poj.org/problem?id=3320 3.总结:尺取法,Hash,map标记 看书复习,p页书,一页有一个知识点,连续看求最少多少页看完所有知识 ...

  10. HDU 5358 尺取法+枚举

    题意:给一个数列,按如下公式求和. 分析:场上做的时候,傻傻以为是线段树,也没想出题者为啥出log2,就是S(i,j) 的二进制表示的位数.只能说我做题依旧太死板,让求和就按规矩求和,多考虑一下就能发 ...

随机推荐

  1. treetable 用法小例

    插件地址:http://pan.baidu.com/s/1kVf0Kcfcript src="/plugins/jQuery/jQuery-2.1.4.min.js">< ...

  2. 阻塞IO下的echo回显实验

    我们只关心代码中的业务逻辑和底层阻塞原因 客户端代码 发送数据 std::string message(len, 'S'); int nw = stream->sendAll(message.c ...

  3. Atcoder 3857 Median Sum

    Problem Statement You are given N integers A1, A2, ..., AN. Consider the sums of all non-empty subse ...

  4. centos 7 卸載 mysql

    跟網上文章,安裝了一個mysqlwget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 記下卸載過程: 首先执行查看命令 ...

  5. Js学习第十天----函数

    函数 什么是函数?函数是由事件驱动的或者当他被调用时运行的可反复使用代码块.预计没明确,个人觉得函数就是能完毕一个功能的代码块. 看个案例: <!DOCTYPE html> <htm ...

  6. 当 外部 input 值的改变,获取 当前 input type="hidden" 的值

    1.如何用jquery获取<input id="test" name="test" type="text"/>中输入的值? 方法 ...

  7. DesiredSize,RenderSize&& Width ,ActualWidth

    做UI的时候刚入门,很多属性摸不着头脑,需要的功能和属性不能很快联系联想到,所以要慢慢积累UIElement 的DesiredSize 和 RenderSize UIElement 的DesiredS ...

  8. requirejs中的define

    关于requirejs中的define的原理理解   我们已经了解到模块模式是为单例创建私有变量和特权方法的.一个最基本的例子: var foo=(function(){ var something= ...

  9. java验证码图片

    package com.su.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; impor ...

  10. 查询历史使用过的命令并使用(history)

    一.什么是history 在bash功能中.它能记忆使用过的命令,这个功能最大的优点就是能够查询以前做过的举动.从而能够知道你的执行步骤.那么就能够追踪你曾下达过的命令.以作为除错的工具. 二.His ...