【第49题】[NOIP2013 提高组] 花匠

2023-08-31 14:50:06 浏览数 (2)

题目:[NOIP2013 提高组] 花匠

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/P1970
    • 参考题解:https://www.luogu.com.cn/problem/solution/P1970
  • 标签:OINOIP动态规划
  • 难度:普及/提高-

题解

思路
  • 大致上是求最长波动子序列,通过一个布尔值来判断该上升还是下降
  • 题解大家可移步看这里,很多童鞋写了各种解法
    • https://www.luogu.com.cn/problem/solution/P1970
代码
代码语言:javascript复制
#include <bits/stdc  .h>
using namespace std;

void coder() {
//    freopen("flower.in", "r", stdin);
//    freopen("flower.out", "w", stdout);
    int n;
    scanf("%d", &n);
    vector<int> a(n   5);
    for (int i = 0; i < n;   i) {
        scanf("%d", &a[i]);
    }
    bool b = false;
    if (a[1] >= a[0]) {
        b ^= 1;
    }
    int solve = 1;
    if (n == 1) {
        printf("%d", 1);
        return;
    }
    for (int i = 0; i < n;   i) {
        if (!b && i == n - 1) {
              solve;
            break;
        }
        if (b) {
            if (a[i   1] < a[i]) {
                  solve;
                b ^= 1;
                continue;
            }
        }
        if (!b) {
            if (a[i   1] > a[i]) {
                  solve;
                b ^= 1;
                continue;
            }
        }
    }
    printf("%d", solve);
//    fclose(stdin);
//    fclose(stdout);
}

void best() {

}

int main() {
    //best();
    coder();
    return 0;
}

END

0 人点赞