• b_aw_区间(贪心)


    给定 n 个区间 [ai,bi]和 n 个整数 ci。
    你需要构造一个整数集合 Z,使得∀i∈[1,n],Z 中满足ai≤x≤bi的整数 x 不少于 ci 个。
    求这样的整数集合 Z 最少包含多少个数。

    思路
    对所有线段按右端点升序排列,因为在满足条件的情况下,尽量放后面的数"容错能力"更强

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=5e5+5;
    struct node {
        int l,r,c;
    } A[N];
    bool cmp(node& a, node& b) {
        return a.r<b.r;
    }
    int main() {
        std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
        int n,ans=0,vis[n+1]; cin>>n;
        memset(vis, false, sizeof vis);
        for (int i=0; i<n; i++) cin>>A[i].l>>A[i].r>>A[i].c;
        sort(A, A+n, cmp);
    
        for (int i=0; i<n; i++) {
            int l=A[i].l, r=A[i].r, need=A[i].c;
            for (int j=l; j<=r; j++) if (vis[j]) need--; //如果已经放了数,则需求-1
            if (need>0) for (int j=r; j>=l && need>0; j--) if (!vis[j]) {
                need--, vis[j]=1, ans++;
            }
        }
        cout<<ans;
        return 0;
    }
    
  • 相关阅读:
    clientX和clientY属性需要注意的地方
    事件冒泡 --- 仿select下拉框
    body和document的梗
    完美运动框架
    仿flash运动框架
    多物体运动框架
    Computed Styles
    悬浮框
    【一起驴友】公司笔试
    Client Dimensions , offsetHeight , scrollTop 属性详解
  • 原文地址:https://www.cnblogs.com/wdt1/p/13724927.html
Copyright © 2020-2023  润新知