https://codeforces.com/problemset/problem/816/B
题意:给定n个区间,每次将n个区间中的所有数值统计一次,还有数值k,和q个询问区间。问每次询问的区间中,有多少个数值出现统计的次数>=k次。
思路:差分+前缀和,求出每个数出现的次数。再将所有出现次数>=k的数进行标记,再求前缀和,然后回答q个询问即可。
inline void solve(){int n, k, q;cin >> n >> k >> q;vector<int> a(233333, 0);for (int i = 0; i < n; ++i) {int l, r;cin >> l >> r;a[l] ++;a[r + 1] --;}vector<int> b(a.size(), 0);for (int i = 1; i <= 200000; ++i) {a[i] += a[i - 1];if (a[i] >= k) {b[i] = 1;}}for (int i = 1; i <= 200000; ++i) {b[i] += b[i - 1];}while (q --) {int l, r;cin >> l >> r;cout << (b[r] - b[l - 1]) << "\n";}
}