题解:
1.没接收一个区间,比如i,j,记录次数的数组arr[i]++,arr[j+1]–;
2.最后得出第i个点出现次数的值时,arr[i] = arr[i]+arr[i-1];
3.注意输出格式,最后一个没空格.
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<map>
#define LL long long
using namespace std ;
int main()
{
int N,a,b;
int arr[100005];
while(~scanf("%d",&N)&&N)
{
for(int i = 0 ; i<= N+1 ; i++)
arr[i] = 0;
for(int j = 0 ; j < N ; j++)
{
scanf("%d%d",&a,&b);
arr[a]++;
arr[b+1]--;
}
for(int j = 1 ; j <= N ; j++)
{
arr[j] +=arr[j-1];
if(j == N)
cout<<arr[j];
else
cout<<arr[j]<<" ";
}
cout<<endl;
}
return 0;
}