扫描线HDU 5124 lines

Posted shulin~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扫描线HDU 5124 lines相关的知识,希望对你有一定的参考价值。

http://acm.hdu.edu.cn/showproblem.php?pid=5124

【题意】

在数轴x上,每次操作都覆盖一个区间的所有点,问被覆盖次数最多的点是覆盖了多少次

【思路】

最简单的扫描线,左右端点分别排序,遇到左端点sum++更新最值,遇到右端点sun--更新最值

【Accepted】

技术分享
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[100010],b[100010];
 4 int t,n;
 5 bool cmp(int  aa,int bb)
 6 {
 7     return aa<bb;
 8 }
 9 int main()
10 {
11     scanf("%d",&t);
12     while(t--)
13     {
14         scanf("%d",&n);
15         for(int i=0; i<n; i++)
16             scanf("%d%d",&a[i],&b[i]);
17         sort(a,a+n,cmp);
18         sort(b,b+n,cmp);
19         int maxx=0,sum=0;
20         int j=0,i=0;
21         while(i!=n && j!=n)
22         {
23             if(b[j]<a[i])
24             {
25                 sum--;
26                 j++;
27             }
28             else
29             {
30                 sum++;
31                 i++;
32             }
33             maxx=max(maxx,sum);
34             //printf("%d\n",maxx);
35         }
36         printf("%d\n",maxx);
37     }
38     return 0;
39 }
O(n)扫描线

 

以上是关于扫描线HDU 5124 lines的主要内容,如果未能解决你的问题,请参考以下文章

arx代码片段

hdu1542 Atlantis(扫描线+线段树+离散)矩形相交面积

hdu1542(矩形面积并)

HDU1542--Atlantis(扫描线)

HDU 1255 覆盖的面积(线段树:扫描线求面积并)

HDU 3265 Posters ——(线段树+扫描线)