前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【第49题】[NOIP2013 提高组] 花匠

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

作者头像
小码匠
发布2023-08-31 14:50:06
1650
发布2023-08-31 14:50:06
举报
文章被收录于专栏:小码匠和老码农

题目:[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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目:[NOIP2013 提高组] 花匠
  • 题解
    • 思路
      • 代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档