. 奶牛排队

匿名 (未验证) 提交于 2019-12-02 23:49:02

. 奶牛排队

【题目描述】:

【输入描述】:

【输出描述】:

【样例输入】:

5 1 2 3 4 1

【样例输出】:

4

【样例说明】:

【时间限制、数据范围及描述】:

【code】

 1 #include <cstdio>  2 #include <cstring>  3 #include <algorithm>  4 using namespace std;  5 int f[1000005], h[1000005];  6 int n,ans,i;  7 int main(){  8     scanf("%d",&n);  9     for(i=1;i<=n;i++) 10        scanf("%d",&h[i]); 11     for(i=1;i<=n;i++){ 12         int id=i-1, j=i-1; 13         while(j) { 14             if(h[j]>=h[i]) break; 15             if(h[f[j]+1]<h[id+1]) id=f[j]; 16             j=f[j]; 17         } 18         f[i]=id; 19         ans=max(ans, i-id); 20     } 21     if(ans==1)ans=0; 22     printf("%d", ans); 23     return 0; 24 }

#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int f[1000005], h[1000005]; int n,ans,i; int main(){ 	scanf("%d",&n); 	for(i=1;i<=n;i++) 	   scanf("%d",&h[i]); 	for(i=1;i<=n;i++){ 		int id=i-1, j=i-1; 		while(j) { 			if(h[j]>=h[i]) break; 			if(h[f[j]+1]<h[id+1]) id=f[j]; 			j=f[j]; 		} 		f[i]=id; 		ans=max(ans, i-id); 	} 	if(ans==1)ans=0; 	printf("%d", ans); 	return 0; }  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!