暑期集训之Subsequence
来源:互联网 发布:php网站开发入门 编辑:程序博客网 时间:2024/05/22 06:07
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.
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.
For each the case the program has to print the result on separate line of the output file.if no answer, print 0.
210 155 1 3 5 10 7 4 9 2 85 111 2 3 4 5
23
今天的一个新的专题,二分专题,开头学长讲解知识点(吐槽一下,学长虽然开始就强调了他第一次讲题,但我想说的是,讲题别老是笑行不行,一会笑一下一会笑一下<.0,反正虽然他说了半天,我还是不是很明白是啥意思,还是自学一下吧)作为专题练习题的第一题,表示开始我确实没看懂题意,我以为是找出数据相加之和大于等于S的最少数据个数,所以我就一开始sort排序,然后每次都让最大的数相加,直到相加之和大于等于S,可是后来看学长博客才明白,这道题的意思是数据的输入顺序不变,再输入顺序不变的情况下找出一个最短子序列,这个序列的和要大于等于S,所以光是看这一点就证明我开始的想法是错误的,不能改变原有序列的顺序,当然,就算是直到原理我也不会做,所以还是看了看学长们的博客,最后才理解了,代码如下,其实不想解释太多了,毕竟这道题不是太难,代码也比较简单,所以也就不注释了,自行理解:
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;int a[100005];int inf=100005;int main(){int n;while(scanf("%d",&n)!=EOF){while(n--){int m,s;scanf("%d%d",&m,&s);scanf("%d",&a[0]);for(int i=1;i<m;i++){ scanf("%d",&a[i]); a[i]=a[i]+a[i-1]; } int p=1,ans=inf; for(int i=0;i<m;i++) { if(a[i]-a[p-1]>=s) { while(a[i]-a[p-1]>=s) p++; p--; ans=min(ans,i-p+1);} } if(ans==inf)printf("0\n");elseprintf("%d\n",ans);}}return 0;}
阅读全文
0 0
- 暑期集训之Subsequence
- 暑期集训之最小公倍数
- 暑期集训之cake
- 暑期集训之Array
- 暑期集训之ZOJ
- 暑期集训之哈夫曼树
- 暑期集训之pie
- 暑期集训之Highways
- 暑期集训之感
- 暑期集训之最大公约数问题
- 暑期集训之立方求和
- 暑期集训之EXCEL排序
- 暑期集训之稳定排序
- 暑期集训之寻找大富翁
- 暑期集训之阶乘之和
- 暑期集训
- 暑期集训之美素数问题
- 暑期集训之一般素数的判断
- spring 整合 redis,以及spring的RedisTemplate如何使用
- linux基础操作
- 初次使用Retrofit和Gson
- DML-数据操作语言
- EL表达式详解empty & null
- 暑期集训之Subsequence
- Dubbo搭建流程
- ps网页设计教程
- lower-bound和upper-bound
- 学习总结
- POJ 1046 Color Me Less
- Android Studio FragmentTabHost使用
- rabbitmq安装
- 关于抽象类的学习