区间合并模板
作者:
Heait
,
2024-05-01 17:17:44
,
所有人可见
,
阅读 6
区间合并模板
#include <cstdio>
#include <algorithm>
#include <vector>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
int main()
{
int t, n, m;
vector<PII> p, tp;
scanf("%d", &t);
while(t--)
{
p.clear(), tp.clear();
scanf("%d%d", &n, &m);
for(int i = 0; i < m; i++)
{
int l, r;
scanf("%d%d", &l, &r);
tp.push_back({l, r});
}
sort(tp.begin(), tp.end());
int st = 0, ed = 0;
for(auto tt : tp)
{
if(ed < tt.x)
{
if(ed)
p.push_back({st, ed});
st = tt.x, ed = tt.y;
}
else
ed = max(ed, tt.y);
}
p.push_back({st, ed});
for(auto tt : p)
printf("%d %d\n",tt.x, tt.y);
printf("\n");
}
return 0;
}
测试数据
2
3 3
1 3
2 4
5 7
3 1
1 2