• Lpl and Energy-saving Lamps


    const int N = 100005;
    
    int n, m, q, flag, cnt;
    int Min[4 * N], d[N];
    
    void Pushup(int root) {
        Min[root] = min(Min[lson], Min[rson]);
    }
    
    void Build(int l, int r, int root) {
        if (l == r) {
            sc(Min[root]);
            return;
        }
        int mid = (l + r) >> 1;
        Build(l, mid, lson);
        Build(mid + 1, r, rson);
        Pushup(root);
    }
    
    void Update(int l, int r, int root, int x) {
        if (Min[root] > x) return;
        if (l == r) {
            flag = Min[root];
            Min[root] = INF32;
            cnt++;
            return;
        }
        int mid = (l + r) >> 1;
        if (Min[lson] > x) Update(mid + 1, r, rson, x);
        if (Min[lson] <= x) Update(l, mid, lson, x);
        Pushup(root);
    }
    
    P ans[N];
    
    int main()
    {
        sc(n), sc(m);
        Build(1, n, 1);
        sc(q);
        Rep(i, 1, q) sc(d[i]);
    
        int tp = 0;
        Rep(i, 1, q) {
            if (Min[1] == INF32) {
                ans[i].first = cnt;
                ans[i].second = tp;
                continue;
            }
            tp += m;
            while(1) {
                flag = 0;
                Update(1, n, 1, tp);
                if (!flag) break;
                tp -= flag;
            }
    
            ans[i].first = cnt;
            ans[i].second = tp;
        }
    
        Rep(i, 1, q) printf("%d %d
    ", ans[d[i]].first, ans[d[i]].second);
        return 0;
    }
  • 相关阅读:
    Chrome快捷键统计
    数据封装
    数据抽象
    linux c++ 服务器端开发面试必看书籍(转载)
    闭包和高阶函数
    this,call,apply,bind
    DOM浏览器window对象模型
    jquery滚动条
    xml教程
    多态
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/9572226.html
Copyright © 2020-2023  润新知