Codeforces Round #422 (Div. 2) C

来源:互联网 发布:mac版单机游戏下载 编辑:程序博客网 时间:2024/06/07 07:05

参考http://www.cnblogs.com/fu3638/p/7111450.html和

http://blog.csdn.net/qq_34374664/article/details/74394895的

分析,他们这个地方的对于区间的处理挺好。的
而且vector看起来真好用,,不怕爆空间

typedef pair<int,int>pii;vector<pii>rv[mxn];vector<pii>v[mxn];map<int,int>mp;int main(){    //freopen("in.txt","r",stdin);    int n,x;sf("%d%d",&n,&x);    rep(i,1,n){ int l,r,c;sf("%d%d%d",&l,&r,&c);rv[l].push_back(pii(r,c));}    int ans=2*1e9+1;    for(int i=1;i<=2e5;++i){        for(int j=0;j<rv[i].size();++j){            int r=rv[i][j].first;            int cost=rv[i][j].second;            int tim=r-i+1;            if(mp[x-tim]){                ans=min(ans,rv[i][j].second+mp[x-tim]);            }            v[r].push_back(pii(tim,cost));        }        for(int j=0;j<v[i].size();++j){            int tim=v[i][j].first;            int cost=v[i][j].second;            if(!mp[tim]||mp[tim]>cost){                mp[tim]=cost;            }        }    }    if(ans==2*1e9+1)puts("-1");    else pf("%d\n",ans);}
原创粉丝点击