P9426 [蓝桥杯 2023 国 B] 抓娃娃
题目链接(这题洛谷数据有问题,过不了的,看下题就行了)
思路
如果一个区间能包含这个线段,那么这个区间一定包含这个线段的中点,如果是线段长度是奇数的话,那么中点是小数,所以把线段和区间边界都乘2就行了
代码
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int s[3000000];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int l, r;
cin >> l >> r;
s[l + r]++;
}
for (int i = 1; i <= 3000000; i++) s[i] += s[i - 1];
for (int i = 1; i <= m; i++) {
int l, r;
cin >> l >> r;
cout << s[r * 2] - s[l * 2 - 1] << endl;
}
return 0;
}