读进数据之后按起点从小到大排序
然后对于后一段区间直接被前一段包含的情况那被包含的区间可以直接跳过不管
而只被部分包含的情况的话,就把后面的区间起点改成前一个区间终点+1
然后继续算就是了
代码如下
#include <iostream>
#include <algorithm>
using namespace std;
struct fire
{
int b;
int e;
};
fire f[20005];
int a[40005];
int b[40005];
int n, m;