poj3061 Subsequence(尺取法)
来源:互联网 发布:apache kylin 安装 编辑:程序博客网 时间:2024/04/30 02:59
题目链接:https://vjudge.net/problem/POJ-3061
题目大意:连续序列的和大于等于K值得最短的长度是多少
题目思路:尺取法,反复的推进开头与末尾用来求取满足条件的最小区间的方法。
坑点:思路要清晰,理清楚开头与末尾推进的关系
代码:
#include<iostream>#include<cstdio>using namespace std;const int maxn = 1e5+10;int a[maxn];int main(){ int t; while(~scanf("%d",&t)){ while(t--){ int n,k; scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&a[i]); int sum=0; int starti=0; int len=maxn; for(int i=0;;){ while(sum<k&&i<n) sum+=a[i++]; int tmp=i-starti; if(tmp<len) len=tmp; int c=0; while(sum>=k&&starti<n){ sum-=a[starti++]; c++; } //tmp=i-starti+1; //if(tmp<len) len=tmp; tmp=tmp-c+1; if(tmp<len) len=tmp; if(i==n) break; } if(len==n&&sum<k) printf("0\n"); else printf("%d\n",len); } }}
阅读全文
1 0
- POJ3061---Subsequence(尺取法)
- POJ3061---Subsequence(尺取法)
- Subsequence poj3061(尺取法)
- poj3061 Subsequence(尺取法)
- poj3061 Subsequence 尺取法
- poj3061 Subsequence ,尺取法
- [尺取法] poj3061 Subsequence
- POJ3061 Subsequence 尺取法
- POJ3061-Subsequence【尺取法】
- poj3061 Subsequence 尺取法
- poj3061 Subsequence 尺取法
- poj3061 Subsequence(尺取法)
- poj3061 Subsequence(尺取法)
- POJ3061 -- Subsequence(尺取法)
- 尺取法-POJ3061-Subsequence
- POJ3061(尺取法)
- POJ3061尺取法)
- POJ3061 Subsequence(二分前缀和法+尺取法)
- 深入理解void以及void指针的含义
- 无聊写的delphi7 调rest接口的例子
- python判断字符串中包含某个字符的判断函数脚本
- jquermobile webapp遇到的一些问题与解决
- poj 2236-小白算法练习 并查集 Wireless Network
- poj3061 Subsequence(尺取法)
- Smeech
- jQuery EasyUI简述
- HDU 1285 确定比赛名次
- 2017CSU暑假集训二 G-River Hopscotch
- RxJava 使用总结
- 写高质量OC代码52建议总结:44.通过Dispatch Group机制,根据系统资源状况来执行任务
- 多线程
- Ubiquitous Religions 并查集入门