思路:用差分来维护每种温度被食谱的认可度,再用前缀和处理询问(本来以为要用线段树维护,后来发现询问都在最后,于是写的差分)。

有关差分的介绍请看这里:差分数组&树上差分

前缀和不用多讲了吧

最后是代码:

#include<iostream>
using namespace std;
int a[200005],b[200005],sum[200005];
int main()
{
	int n,k,q,l,r;
	cin>>n>>k>>q;
	for(int i=0;i<n;i++)
	{
		cin>>l>>r;
		b[l]++;
		b[r+1]--;
	}//差分
	int sum1=0,sum2=0;
	for(int i=1;i<=200000;i++)
	{
		sum1+=b[i];
		a[i]=sum1;
		if(a[i]>=k)
			sum2++;
		sum[i]=sum2;
	}//计算前缀和
	for(int i=0;i<q;i++)
	{
		cin>>l>>r;
		cout<<sum[r]-sum[l-1]<<endl;
	}//处理询问
	return 0;
}