https://ac.nowcoder.com/acm/contest/322/M
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long LL;
const int maxN=1e6+5;
int ans[200005],a[maxN],N;
int main()
{
cin>>N;
int l,r;
for(int i=1;i<=N;i++)
{
scanf("%d%d",&l,&r);
a[l]++;
a[r+1]--;
}
ans[a[0]]++;
for(int i=1;i<=1000000;i++)
{
a[i]+=a[i-1];
ans[a[i]]++;
}
for(int i=1;i<N;i++)printf("%d ",ans[i]);
printf("%d\n",ans[N]);
return 0;
}
本文分享了一段解决ACM竞赛中区间覆盖问题的C++代码。通过使用数组记录每个位置的区段增减,再进行前缀和计算,得出各点被覆盖次数,最后输出覆盖次数统计结果。
741

被折叠的 条评论
为什么被折叠?



