题目
拦截的第奇数颗导弹比前一颗导弹更远、更高,拦截的第偶数颗导弹比前一个更远、更低,问一共能防御多少颗导弹。
分析
像过山车一样的序列我也不知道叫什么,不过纯模拟就好了,貌似叫dp。
代码
#include <cstdio>
#include <cctype>
using namespace std;
int ans=1,last,now,n; bool big;
int in(){
int ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
int main(){
n=in(); now=in();
while (--n){
last=now; now=in();
if (last==now) continue;//相等跳过
if (big^(now<last)) ans++,big=now<last;//正好大小关系与上一次不同
}
return !printf("%d",ans);//也就是这些升降的个数
}