题解 | 【CF896B】 Ithea Plays With Chtholly

题目链接:Here

m 个数,放到 1n 一个位置上,若 1n 都被填满且不下降就胜。强制在线。

看到题忽然觉得是水题,这不就最长不下降子序列的那个吗!直接上个二分就准备交了。

事实证明头铁了(怎么可能这么简单,2000分啊!)

反例:

15 5 9 
29 1 8 1 7

若一个从前往后一个从后往前就可以完成,而那个做法还只填了 1 1 7 呢!

问题出在哪里?

  • 最长不下降子序列要求相对位置不变,而这个可以变。

但别着急放弃。这是一个对的做法,只是浪费的步数多一点,那么浪费多少步呢?每一个最多被填 1 次并覆盖 c1 次,所以最多要 n×c 步。
啊!那 m 的限制不是这个步数的一半吗?那么就搞两个上面的,头一个尾一个,然后按照和 c2 的大小关系分开就好了。

【AC Code】

const int N = 1e3 + 10;
int a[N];
int main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, m, c, cnt = 0;
    cin >> n >> m >> c;
    for (int i = 1, x; i <= m; ++i) {
        cin >> x;
        if (x <= c / 2) {
            int j;
            for (j = 1; j <= n && a[j] != 0 && a[j] <= x; ++j);
            cout << j << endl;
            a[j] = x;
        } else {
            int j;
            for (j = n; j >= 1 && a[j] != 0 && a[j] >= x; j -= 1);
            cout << j << endl;
            a[j] = x;
        }
    }
}
posted @   RioTian  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
点击右上角即可分享
微信分享提示