zoukankan      html  css  js  c++  java
  • Codeforces Round #523 (Div. 2)D(二分,多重集)

    #include<bits/stdc++.h>
    using namespace std;
    const long long N=1e5+5;
    const long long MOD=1e9+7;
    long long n,x,y,ans=0;
    long long cost[N];
    pair<long long,long long>a[N];
    multiset<pair<pair<long long,long long>,long long> >s;
    int main(){
     cin>>n>>x>>y;
     for(long long i=1;i<=n;i++){
      cin>>a[i].first>>a[i].second;
      s.insert({{a[i].second,a[i].first},i});
     }
     sort(a+1,a+n+1);
     for(long long i=1;i<=n;i++){
      cost[i]=(x+y*(a[i].second-a[i].first));
      if(!s.size()||s.begin()->first.first>=a[i].first)
       continue;
      auto it=s.lower_bound({{a[i].first,0},0});//自动二分查找到大于等于a[i].first的a[j].second
      long long pre=(--it)->first.first;//最有可能可以不用开一台新电视的节目
      if(y*(a[i].second-pre)>=cost[i])
       continue;
      cost[i]=y*(a[i].second-pre);
      s.erase(it);
     }
     for(long long i=1;i<=n;i++){
      ans+=cost[i];
      ans%=MOD;
     }
     ans%=MOD;
     cout<<ans;
    }
    //轻微思维加上二分,多重集的便利可见一斑,手写二分中遭遇不测~

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    GitHub 实现多人协同提交代码并且权限分组管理
    前端第一篇文章-http标准
    介绍Android电量
    音频编码格式
    PPT
    Word
    HTML 之 JavaScript
    HTML 之 CSS
    HTML 之 HTTP 协议(请求协议以及响应协议)
    HTML 之 标签
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10155487.html
Copyright © 2011-2022 走看看