抓娃娃
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef pair<double,double> PDD;
struct seg{
double sl;
double sm;
double shl;
bool operator<(const seg& other)const{
return sl<other.sl;
}
};
vector<seg> segs;
vector<PDD> query;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,m; cin>>n>>m;
for(int i=0;i<n;i++){
double l,r;cin>>l>>r;
double sl=l,sm=(l+r)*1.0/2,shl=(r-l)*1.0/2;
segs.push_back({sl,sm,shl});
}
sort(segs.begin(),segs.end());
for(int i=0;i<m;i++){
double l,r;cin>>l>>r;
query.push_back({l,r});
}
for(auto q:query){
auto ql=q.first,qr=q.second;
int cnt=0;
for(auto s:segs){
auto sl=s.sl,sm=s.sm,shl=s.shl;
if(ql<=sl && qr<sm) continue;
if(ql>=sl && ql<=sm && qr<ql+shl) continue;
if(ql>sm) continue;
cnt++;
}
cout<<cnt<<endl;
}
return 0;
}
同类题型
视频讲解
⬅️ AB路线 🏠 00-冲刺国赛 ➡️ 拼数字
💬 评论