@drkenさんのAtCoder 版!蟻本 (初級編)の区間スケジューリング問題の類題を2問触って見ました
キーエンス プログラミング コンテスト 2020 B
#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
usingnamespacestd;usingll=longlong;intn,ans=0;intnow=-2e9;vector<pair<int,int>>v;intmain(){cin>>n;rep(i,n){llx,l=0;cin>>x>>l;v.push_back(make_pair(x+l,x-l));}sort(v.begin(),v.end());rep(i,n){if(v[i].second<now)continue;else{now=v[i].first;ans++;}}cout<<ans<<endl;}
ABC103 D
#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
usingnamespacestd;usingll=longlong;usingpii=pair<int,int>;intmain(){intn,m;cin>>n>>m;vector<pii>q(m);rep(i,m){inta,b;cin>>a>>b;q[i].first=b;q[i].second=a;}sort(q.begin(),q.end());intans=1;intt=q[0].first;rep(i,m){if(t<=q[i].second){ans++;t=q[i].first;}}cout<<ans<<endl;}
感想
今回は、区間スケジューリング問題を触ってみました。1問目を解いたときはうまく理解できませんでしたが、2問目を解いたときにうまく理解できました。