贪心 WA0
查看原帖
贪心 WA0
255169
__LePetitPrince__楼主2023/9/7 23:26
#include <algorithm>
#include <vector>
using namespace std;
const int N = 5e4 + 5;
int n, n2 = 1;
pair<int, int> seg[N], seg2[N];
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> seg[i].first >> seg[i].second;
	}
	sort(seg + 1, seg + n + 1);
	seg2[1] = seg[1];
	for (int i = 2; i <= n; i++) {
		if (seg[i].second <= seg[i - 1].second) {
			;
		} else {
			seg2[++n2] = seg[i];
		}
	}
	n = n2;
	seg2[n + 1].first = 0x3f3f3f3f;
	n++;
	for (int i = 1; i <= n - 1; i++) {
		cout << seg2[i].first << ' ';
		while (seg2[i].second >= seg2[i + 1].first) {
			i++;
		}
		cout << seg2[i].second << endl;
	}
	return 0;
}

seg2 是去除被完全包含的区间以后得所有区间

2023/9/7 23:26
加载中...