Luogu P1970 花匠
Posted luoshui-tianyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Luogu P1970 花匠相关的知识,希望对你有一定的参考价值。
Luogu P1970 花匠
本质上就是找最长的波浪序列。
因为考虑到第一个必选,所以可以让(lst=h[1]).
此外,注意到(n=1)是要特判,其他情况下显然(ansgeq 2),所以把(dir)初始化为(-1)是很巧的操作,这保证了除第一个外至少有一个被选。
#include<bits/stdc++.h>
using namespace std;
int n,m,lst,dir=-1,newdir; //(new)dir记录方向:0下1上
int h[100010];
int main() {
scanf("%d",&n);
for(int i=1;i<=n;i++) {
scanf("%d",&h[i]);
}
if(n==1) {
printf("1");
return 0;
}
m++;
lst=h[1];
for(int i=2;i<=n;i++) {
if(h[i]==lst) {
continue;
}
else if(h[i]<lst) {
newdir=0;
}
else {
newdir=1;
}
if(newdir!=dir) {
m++;
dir=newdir;
}
lst=h[i];
}
printf("%d",m);
return 0;
}
以上是关于Luogu P1970 花匠的主要内容,如果未能解决你的问题,请参考以下文章