前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【信息学做题日记】AC掉贴海报不是目标,还有浮水法和线段树等着呢?

【信息学做题日记】AC掉贴海报不是目标,还有浮水法和线段树等着呢?

作者头像
小码匠
发布2024-06-11 17:55:35
620
发布2024-06-11 17:55:35
举报

大家好!我是老码农。

小码匠这周有些打酱油

  • 周一感冒不舒服;
  • 周二晚上回来跟我又谈判,要准备周四的考试。打算周二、周三复习;
  • 周四晚上眼不太舒服了,复习了下线段树的2个模版,就早早休息了。
  • 周五晚上看这道题,噼里啪啦敲了会,感觉染色那块没太想明白。

周一也就是今天六一儿童节一大早,我提示了下她,可以考虑暴力。

她一看数据量,好水,直接搞了个暴力。

就有了下面的代码

代码语言:javascript
复制
#include <bits/stdc++.h>

using namespace std;
const int MAX_NUM = 1e7 + 5;

bool cmp(node x, node y) {
    return x.l < y.l;
}

void best_coder() {
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < m; ++i) {
        cin >> a[i].l >> a[i].r;
        a[i].idx = i;
    }
    sort(a, a + m, cmp);

    int ans = 0;
    for (int i = 0; i < m; ++i) {
        int flag = a[i].l;
        for (int j = 0; j < m; ++j) {
            if (a[j].l > flag) {
                break;
            }
            if (a[j].idx > a[i].idx && a[j].r >= flag) {
                flag = a[j].r + 1;
            }
            if (flag > a[i].r) {
                break;
            }
        }
        if (flag <= a[i].r) {
            ++ans;
        }
    }
    cout << ans;
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}

果然比用线段树搞,代码清新多了。

其实学信息学,读懂题目很关键

  • 别把简单问题复杂化;比赛时这点很关键,想想打个线段树的模版也有快30行了;
  • 平时的学习,还是不要满足于AC掉一个题目,题目AC掉后,还是要把题解区仔细看看,例如本题 都可以AC掉此题,需要去补充下线段树如何搞、浮水法也可以学习啊。
    • 浮水法
    • 线段树

总之:让自己的知识更成体系,别是一盘散沙。

好啦,今天就写到这里。

祝愿孩子们:节日快乐!

总结

记得「关注」、点「」、点「在看」支持一下老码农,感谢大家的支持!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档