Codeforces 1000C Covered Points Count

Posted kaleidoscope233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 1000C Covered Points Count相关的知识,希望对你有一定的参考价值。

C. Covered Points Count
题目大意:有n条线段,问有多少个点被i条线段覆盖(i=1~n)。
很常见的线段覆盖套路题QAQ。
坐标排序后把左端点当做+1,右端点当做-1,扫一遍统计答案即可。
但是记得开ll,数组大小开双倍。

技术分享图片
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <queue>
 6 #define ll long long
 7 #define out(a) printf("%lld ",a)
 8 using namespace std;
 9 int n,tot;
10 ll ans[200050];
11 ll l,r,now=0;
12 ll read()
13 {
14     ll s=0,t=1; char c;
15     while (c<0||c>9){if (c==-) t=-1; c=getchar();}
16     while (c>=0&&c<=9){s=s*10+c-0; c=getchar();}
17     return s*t;
18 } 
19 struct dist
20 {
21     ll num,h;
22 }a[400050];
23 bool cmp(dist a,dist b)
24 {
25     return a.num==b.num?a.h<b.h:a.num<b.num;
26 }
27 int main()
28 {
29     n=read(); now=0;
30     for (int i=1;i<=n;i++) {
31       l=read(),r=read();
32       a[++tot].num=l,a[tot].h=1;
33       a[++tot].num=r+1,a[tot].h=-1;
34     }
35     sort(a+1,a+tot+1,cmp); 
36     for (int i=1;i<=tot;i++) {
37       ans[now]+=a[i].num-a[i-1].num;
38       now+=a[i].h;
39     }
40     for (int i=1;i<=n;i++)
41       out(ans[i]);
42     return 0;
43 }
View Code

 





以上是关于Codeforces 1000C Covered Points Count的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 534B - Covered Path

CodeForces - 534B-Covered Path+??????

Educational Codeforces Round 46 C - Covered Points Count

[CodeForces-1036E] Covered Points 暴力 GCD 求交点

联发科天玑 1000C 性能测试曝光,性能略胜麒麟 820

the ground is covered with the snow为啥用is不用was?