C题解 | #小Why的商品归位#

小Why的商品归位

https://ac.nowcoder.com/acm/contest/64384/C

C题解 | #小Why的商品归位#

我们可以这样想,对于一个商品假设一开始在1,然后要去4
那么他在1-3这个区间就一定会占据一个购物车位置,因为在这期间不可能将它放下来
这样就可以直接通过差分来维护在商品的“占据情况”
然后找到最多商品同时占据的点,然后除以k向上取整就是答案了

代码如下
#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

const int N = 1e6 + 10;

int n,m,k,cha[N];

void solve()
{
    cin >> n >> m >> k;
    for(int i = 1; i <= m; i++)
    {
        int l,r;
        cin >> l >> r;
        cha[l]++,cha[r]--;
    }

    int res = 0;
    for(int i = 1; i <= n; i++)
    {
        cha[i] += cha[i - 1];
        res = max(res,cha[i]);
    }
    cout << (res - 1)/k + 1 << '\n';
}

int main() {
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t = 1;
    while(t--) solve();
    return 0;
}


全部评论
提问:为什么最后输出的时候用ceil不对啊
点赞 回复 分享
发布于 2023-09-02 10:28 辽宁

相关推荐

评论
11
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务