- 题解
关于 P234 区间合并
- 2022-12-6 20:29:28 @
看到有很多人90分 WA#9,ZLT猜测了一下原因:假设有两个区间 114514 214747,和274748 1919810,这两个区间也是可以合并的,因此,我们只需要把更新左端最大值时将 > 改成 >= 即可。
2 条评论
-
菜 shm LV 7 @ 2022-12-10 7:06:29
WA #4
-
2022-12-6 20:50:33@
#include<bits/stdc++.h> using namespace std; struct node{ long long x,y; }a[100100]; int n; long long k; bool cmp(node aa,node bb) { return aa.x<bb.x; } int main() { scanf("%d",&n); for(register int i=1;i<=n;++i) scanf("%lld%lld",&a[i].x,&a[i].y); sort(a+1,a+n+1,cmp); a[n+1].x=a[n+1].y=1e12; k=a[1].y; // for(register int i=1;i<=n;++i) // printf("%lld %lld\n",a[i].x,a[i].y); for(register int i=2;i<=n+1;++i) { if((a[i].x-1)<=k) { k=max(k,a[i].y); a[i].x=min(a[i].x,a[i-1].x); } else { printf("%lld %lld\n",a[i-1].x,k); k=a[i].y; } } return 0; }
看一下我的?
👍 3
- 1