感觉这个题贪心要比dp好想qwq,至少我到现在没想到dp
#include<iostream> #include<cstdio> using namespace std; int n,ans,x,y,fl; int main() { scanf("%d%d",&n,&x); ans=1,fl=-1;//预处理,第一第二个必须选 for(int i=2;i<=n;i++)//逐个输入,然后判断是否成波浪形 { scanf("%d",&y); if(x>y&&fl!=1) fl=1,ans++; if(x<y&&fl!=0) fl=0,ans++; x=y; } printf("%d",ans); } /*关于这个贪心正确性 这个题世界上是要求最后的序列为一个波浪形 假设有一个序列 a1 a2 a3 a4 ……ai ai+1 ai+2……aj aj+1 ……an 其中ai ai+1 ai+2 aj组合起来是答案的一种 假如a1大于ai 如果是高低高低的话 那么选a1 ai+1 ai+2 aj也可以 */