本文主要是介绍洛谷 3903 导弹拦截III#线性动态规划#,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
拦截的第奇数颗导弹比前一颗导弹更远、更高,拦截的第偶数颗导弹比前一个更远、更低,问一共能防御多少颗导弹。
分析
像过山车一样的序列我也不知道叫什么,不过纯模拟就好了,貌似叫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);//也就是这些升降的个数
}
这篇关于洛谷 3903 导弹拦截III#线性动态规划#的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!