标签:size http 制造 class n+1 数据 ret 反恐 单行
3 10 20 8 2 1 13 2 5 9 6 3 4 6 30 8 2 1 5 3 4 2 5 3 2
3 -1 2
解题思路:这是一道很经典的尺取算法的应用,这也是我第一次接触这种算法,之前用暴力交了一发,果然是时间超限,之后我会对这一算法进行一下总结。
尺取算法说明:http://www.cnblogs.com/wkfvawl/p/9016281.html
先上代码:
1 #include<stdio.h> 2 int main() 3 { 4 int t,n,m,ans,min,sum,i,j,w; 5 int a[100010]; 6 scanf("%d",&t); 7 while(t--) 8 { 9 scanf("%d%d",&n,&m); 10 for(i=0;i<n;i++) 11 { 12 scanf("%d",&a[i]); 13 } 14 j=0; 15 w=0; 16 sum=0; 17 ans=n+1; 18 while(1) 19 { 20 while(j<n&&sum<m) 21 { 22 sum=sum+a[j++]; 23 } 24 if(sum<m) 25 { 26 break; 27 } 28 min=j-w; 29 if(min>ans) 30 { 31 min=ans; 32 } 33 ans=min; 34 sum=sum-a[w]; 35 w++; 36 } 37 if(ans==n+1) 38 { 39 printf("-1\n"); 40 } 41 else 42 { 43 printf("%d\n",ans); 44 } 45 } 46 return 0; 47 }
标签:size http 制造 class n+1 数据 ret 反恐 单行
原文地址:https://www.cnblogs.com/wkfvawl/p/9016201.html