反悔贪心[USACO09OPEN] Work Scheduling G

int n;
int ans = 0;
PII a[N];

// 定义priority_queue的比较函数
struct cmp {
    bool operator() (PII a, PII b) {
        return a.second > b.second;
    }
};

priority_queue<PII, vector<PII>, cmp> pq;

void solve() {
    cin >> n;
    for (int i = 1; i <= n; i ++) {
        cin >> a[i].first >> a[i].second;
    }
    sort(a + 1, a + 1 + n);
    for (int i = 1; i <= n; i ++) {
        if (a[i].first > pq.size()) {
            ans += a[i].second;
            pq.push(a[i]);
        }
        else {
            if (a[i].second > pq.top().second) {
                ans -= pq.top().second;
                pq.pop();
                pq.push(a[i]);
                ans += a[i].second;
            }
        }
    }
    cout << ans << '\n';
}
posted @   lightmon  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示