UVaLive 2678(LA)Subsequence SEERC 2006 题解
2017-09-06 17:41
751 查看
UVa传送门
Vjudge传送门
题意:
这道题是要在一个由n个正整数组成的一个序列里面求一个长度对钻的连续序列使其和大于等于一个给定的整数S(10<s<=100000,S<1e9)题解:
显然我们发现,如果现在已经有满足的序列使其大于等于这个给定的数S了,比如说是下标为i−>j的序列,那么显然如果我们的j指针++,i−>j+1的和一定也大于S,所以显然我们对于所有满足的子序列,j在增加的时候i也是增加的,故序列的左端点i具有单调性,所以我们只需要维护他一直往后走就可以了。代码:
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int ans,n,S,c[100000+10]; int main(){ while(scanf("%d%d",&n,&S)!=EOF&&n&&S){ for(int i=1;i<=n;i++)scanf("%d",&c[i]),c[i]=c[i-1]+c[i]; ans=n+1; int i=1,j; for(j=1;j<=n;j++){ if(c[i-1]>c[j]-S) continue; while(c[i]<=c[j]-S) i++; ans=min(ans,j-i+1); } if(ans==n+1) printf("0\n"); else printf("%d\n",ans); } return 0; }
相关文章推荐
- UVALive - 2678 Subsequence 推理
- UVALive2678 UVA1121 Subsequence【前缀和+二分搜索+尺取法】
- UVALive - 2678 Subsequence 尺取法
- Shanghai 2006,UVaLive(LA) 3695 Distant Galaxy题解
- UVALive - 2678 Subsequence (尺取法)
- LA 2678 UVA 1121 - Subsequence
- (UVALive - 2678) Subsequence(前缀和,优化)
- UVA live 2678 - Subsequence
- UVA live 2678 - Subsequence
- UVaLIve 2889 | LA 2889 | UVa 12050 - Palindrome Numbers (组合数学)
- LA 2678 Subsequence
- UVALive(LA) 3644 X-Plosives (并查集)
- LA 3266 || UVALive 3266 Tian Ji -- The Horse Racing 田忌赛马(贪心)
- UVALive 3490 (LA 3940) || ZOJ 2619 Generator AC自动机(或KMP) + 整数高斯消元 + 数学期望
- LA 2678 - Subsequence
- UVaLive(LA) 3902 Network,Seoul 2007
- UVaLive LA 4726 UVa 1451 - Average (子序列最大平均数 数形结合 斜率优化 单调队列)
- UVaLive ( LA ) 3516 - Exploring Pyramids (DP 递推)
- UVALive 3907 (LA 3907) Puzzle AC自动机 + 搜索DP 记录路径
- UVALive - 4256 || LA 4256 Salesmen 商人(DP)