Poj 3061 Subsequence 队列区间求和
来源:互联网 发布:手机淘宝看注册时间 编辑:程序博客网 时间:2024/06/06 04:23
题意:按照顺序给定一组数,求出这组数中和大于等于m的最短子序列。
思路:1.strar=0开始求和sum知道sum>=m,更新最短序列的长度
2.把sum从开始start位置开始一直减知道sum<m,过程中更新最短序列的长度过程中start++
代码:
#include <iostream>#include <stdio.h>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <map>#include <queue>#define lson l,mid,num<<1#define rson mid+1,r,num<<1|1using namespace std;const int M=100005;int a[M];int main(){ int t,n,m; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(int i=0; i<n; i++) { scanf("%d",&a[i]); } int sum=0; int start=0; int i=0,mmin=n+1; for(i=0; i<n;) { while(sum<m && i<n) { sum+=a[i++]; // i++; } while(sum>=m) { mmin=min(mmin,i-start); sum-=a[start++]; } } if(mmin==n+1) printf("0\n"); else printf("%d\n",mmin); } return 0;}
- Poj 3061 Subsequence 队列区间求和
- POJ-3061 Subsequence(维护一个区间)
- POJ 3468(区间更新,求和)
- nefu 1268 区间最小值求和(单调队列)
- poj 3468(线段树应用:区间求和)
- POJ 3468 线段树插线问线区间求和
- poj 3468 线段树成段增减+区间求和
- poj 3468 区间更新or求和
- poj 3468 树状数组解法(解决区间更新,区间求和)
- poj 3468 树状数组解法(解决区间更新,区间求和)
- poj 3468 树状数组解法(解决区间更新,区间求和)
- Poj 3667 Hotel 成段更新,区间合并,区间求和
- 【线段树】-POJ-3468-区间增减&区间求和
- POJ 3468 线段树 区间增减 区间求和
- poj 3468 树状数组 区间更新 区间求和
- POJ 3468 线段树 区间更新+区间求和
- poj 3061 Subsequence
- POJ-3061-Subsequence
- 神奇的vfork
- extjs前台平铺
- 黑马程序员_20 代理
- Reporting Service 和 SQL Server Integration Services 服务不能启动
- WordPress无法在线安装主题、插件及快速发布无法上传图片的解决办法
- Poj 3061 Subsequence 队列区间求和
- Oracle Transport Tablespace
- 笔试题目搜集(5)
- SEO创业技巧-素老胡huxingyu
- 开张
- mybatis应用实例学习
- comparison between distinct pointer types 'QPushButton*' and 'QAbstractButton*' lacks a cast
- iOS开发:什么是Bonjour
- HDU 3549 Flow Problem (网络流入门+模板详解)