这场打得蛮菜的,很晚才出BC,还一堆罚时……

A - Sorted Arrays

题目大意:将给定数列划分成单调不增或单调不减的区间,求最少区间数。

贪心即可。

#include<cstdio>
#include<algorithm>
#define MN 1000001
using namespace std;
 
int read_p,read_ca;
inline int read(){
    read_p=0;read_ca=getchar();
    while(read_ca<'0'||read_ca>'9') read_ca=getchar();
    while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
    return read_p;
}
const int MOD=1e9+7;
int n,a[MN],m=0,mmh=0;
int main(){
    int i,j;
    n=read();
    for (i=1;i<=n;i++) a[i]=read();
    for (i=2;i<=n;i++){
        if (a[i]==a[i-1]) continue;
        if (m==-1&&a[i]>a[i-1]) mmh++,m=0;else
        if (m==1&&a[i]<a[i-1]) mmh++,m=0;else
        m=a[i]>a[i-1]?1:-1;
    }
    printf("%d\n",mmh+1);
}
View Code

相关文章:

  • 2021-05-30
  • 2021-11-21
  • 2022-01-18
  • 2022-03-01
  • 2022-02-05
  • 2022-02-20
  • 2021-10-31
  • 2021-08-31
猜你喜欢
  • 2022-01-30
  • 2021-08-09
  • 2022-12-23
  • 2021-09-24
相关资源
相似解决方案