花匠

洛谷

简单贪心
数有几个波动
分别从波峰与波谷开始

#include<bits/stdc++.h>
#define re return
#define inc(i,l,r) for(int i=l;i<=r;++i)
#define dec(i,l,r) for(int i=l;i>=r;--i)

using namespace std;
template<typename T>inline void rd(T&x)
{
	char c;bool f=0;
	while((c=getchar())<'0'||c>'9')if(c=='-')f=1;
	x=c^48;
	while((c=getchar())>='0'&&c<='9')x=x*10+(c^48);
	if(f)x=-x;
}

const int maxn=100005;
int last,now,ans,n,f,ff;

int main()
{
	rd(n);
	rd(last);
	ans=1;int k=1;
	inc(i,2,n)
	{
		rd(now);
		if(f==1&&now>last)++ans,f=0;
		else if(f==0&&now<last)++ans,f=1;
		
		if(ff==1&&now<last)++k,ff=0;
		else if(ff==0&&now>last)++k,ff=1;
		last=now;
	}
	printf("%d",max(ans,k));
	re 0;
} 
posted @ 2019-07-30 22:26  凉如水  阅读(101)  评论(0编辑  收藏  举报