zoj3123题解
2016-05-15 22:44
225 查看
本来实在二分分类找到这道题的,就直接用二分做,时间1001ms,tle了,限时是1000ms,一直想水过。结果只能放弃二分,其实很简单。。。。。。
#include <stdio.h> int N,S,arr[100000]; int main(void) { int T,i,sum,current,mil; scanf("%d",&T); while(T--) { current=0; scanf("%d %d",&N,&S); for(i=0;i<N;i++) scanf("%d",arr+i); sum=current=i=0; mil=N; while(i<N||sum>=S) { if(sum>=S){ sum-=arr[current++]; if(i-current+1<mil) mil=i-current+1; } else sum+=arr[i++]; } if(current) printf("%d\n",mil ); else printf("0\n"); } return 0; }
相关文章推荐
- python中filter, map, reduce, lambda
- HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树
- hightChart 的一些实现
- uva11212
- Perl概述
- RK3288 nonzero urb status received: -71
- 函数指针作用
- java Swing
- 草稿
- MVP举例说明
- 虚拟机类加载与运行机制
- 广商14级软件工程分数:第九回合
- Perl概述
- Perl概述
- 设计模式之策略模式
- 2016/5/15
- Android学习之BottomNavigationBar实现Android特色底部导航栏
- gethostbyname获取本机IP
- 【SCTF&&CCTF 2016】 PWN_WRITEUP
- 聊聊 Linux 中的五种 IO 模型