社区讨论

暴力报0求助QAQ

P7913[CSP-S 2021] 廊桥分配参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lobha192
此快照首次捕获于
2023/10/29 20:59
2 年前
此快照最后确认于
2023/11/04 02:17
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
#define MAXM 1000005
using namespace std;
struct AIRPORT {
	int a, b;
}f1[MAXM], f2[MAXM];
inline bool cmp(AIRPORT a, AIRPORT b) {
	return a.a < b.a;
}
int n, m1, m2, ans = -1, d1[MAXM], d2[MAXM], top1, top2;
int main() {
	cin >> n >> m1 >> m2;
	for(int i = 1; i <= m1; i++)
		cin >> f1[i].a >> f1[i].b;
	for(int i = 1; i <= m2; i++)
		cin >> f2[i].a >> f2[i].b;
	sort(f1, f1 + m1, cmp);
	sort(f2, f2 + m2, cmp);
	for(int i = 1; i <= n; i++) {
		int num = 0, t = 0;
		for(int j = 1; j <= m1; j++) {
			if(f1[j].a < t)
				continue;
			t = f1[j].b;
			f1[j].a = -1;
			f1[j].b = -1;
			num++;
		}
		d1[++top1] = d1[top1-1] + num;
	}
	for(int i = 1; i <= n; i++) {
		int num = 0, t = 0;
		for(int j = 1; j <= m1; j++) {
			if(f2[j].a < t)
				continue;
			t = f2[j].b;
			f2[j].a = -1;
			f2[j].b = -1;
			num++;
		}
		d2[++top2] = d2[top2-1] + num;
	}
	for(int i = 0; i <= n; i++)
		ans = max(ans, d1[i] + d2[n-i]);
	cout << ans;
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...