LA 2678 Subsequence
2013-11-14 17:28
417 查看
利用单调性求最短连续子序列的和大于等于s;
View Code
#include<cstdio> #include<cstring> #include<algorithm> #define maxn 100009 using namespace std; int sum[maxn]; int main() { int n,s,x; while(scanf("%d%d",&n,&s)!=EOF) { memset(sum,0,sizeof sum); int ans=n+1; for(int i=1;i<=n;i++) { scanf("%d",&x); sum[i]=sum[i-1]+x; } int j=1; for(int i=1;i<=n;i++) { if(sum[j-1]>sum[i]-s)continue; while(sum[j]<=sum[i]-s)j++; ans=min(ans,i-j+1); } printf("%d\n",ans==n+1?0:ans); } return 0; }
View Code
相关文章推荐
- LA 2678 Subsequence(尺取法)
- LA 2678 Subsequence
- LA 2678 Subsequence .
- LA2678 Subsequence 时间优化
- LA 2678 Subsequence
- LA 2678 UVA 1121 - Subsequence
- LA 2678 Subsequence(二分查找)
- LA 2678 Subsequence
- LA 2678 – Subsequence
- LA 2678(p48)----Subsequence
- UVaLive 2678(LA)Subsequence SEERC 2006 题解
- LA 2678 – Subsequence
- LA 2678 Subsequence
- LA 2678 Subsequence
- LA_2678 - Subsequence( 二分 )
- LA 2678 - Subsequence
- icpcarchive 2678 - Subsequence
- LA-2678 (尺取法)
- 2678 - Subsequence
- icpcarchive 2678 - Subsequence