poj 3061 Subsequence -尺取法
来源:互联网 发布:网页开发是java还是php 编辑:程序博客网 时间:2024/04/30 07:03
Subsequence
Description
A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length of the subsequence of consecutive elements of the sequence, the sum of which is greater than or equal to S.
Input
The first line is the number of test cases. For each test case the program has to read the numbers N and S, separated by an interval, from the first line. The numbers of the sequence are given in the second line of the test case, separated by intervals. The input will finish with the end of file.
Output
For each the case the program has to print the result on separate line of the output file.if no answer, print 0.
Sample Input
210 155 1 3 5 10 7 4 9 2 85 111 2 3 4 5
Sample Output
23
题意:
n个整数,求总和不小于S的连续子序列的长度的最小值,不存在输出0;
解题思路
尺取法
代码
#include <iostream>#include <cstdio>#include <map>#include <cmath>#include <string.h>#include <algorithm>#include <set>#include <sstream>#include <vector>#include <queue>#include <stack>using namespace std;const int maxn = 100000+10;const int INF = 0x3f3f3f3f;int main(){ int t; scanf("%d",&t); while(t > 0){ t--; int n,S; int a[maxn]; scanf("%d%d",&n,&S); for(int i = 0;i < n; ++i){ scanf("%d",&a[i]); } int s = 0,t = 0; int sum = 0; int res = n+1; while(1){ while(s < n && t < n && sum < S){ sum += a[t++]; } if(sum < S) break;///走到最后了还是不满足 res = min(res,t-s); ///左区间右移 sum -= a[s++]; } if(res > n) res = 0; printf("%d\n",res); } return 0;}
1 0
- poj 3061--Subsequence(尺取法)
- poj 3061 Subsequence(尺取法)
- POJ 3061 Subsequence ( 尺取法 )
- POJ 3061 Subsequence(尺取法)
- Poj 3061 Subsequence【尺取法】
- poj 3061 Subsequence (尺取法)
- POJ 3061 Subsequence【尺取法】
- POJ 3061 Subsequence【尺取法】
- 尺取法 POJ 3061 Subsequence
- 【尺取法】poj 3061 Subsequence
- [尺取法] poj 3061 Subsequence
- poj 3061 Subsequence尺取法
- POJ 3061 Subsequence 尺取法
- POJ 3061 Subsequence 【尺取法】
- Poj 3061 Subsequence【尺取法】
- 【poj】 3061 Subsequence 尺取法
- POJ 3061 Subsequence 尺取法
- POJ 3061 - Subsequence(尺取法)
- jQuery.fn.init
- Java高并发
- Python学习之路-正则表达式
- Python 多进程 用法
- 一个ButterKnife引起的bug-android.content.res.Resources$NotFoundException
- poj 3061 Subsequence -尺取法
- transmission远程调用协议
- $.extend $.fn.extend
- 阿里云(三) Ubuntu系统下mysql卸载
- CSS学习笔记——布局
- Visual studio 中的中文字符
- Bootstrap框架学习之---介绍、排版样式
- eclipse中项目部署resin教程
- QQ聊天气泡