首页 > 其他分享 >CSP2021重做-廊桥分配

CSP2021重做-廊桥分配

时间:2022-10-10 12:44:51浏览次数:77  
标签:std heap1 CSP2021 int 廊桥 include 重做

CSP-S 2021廊桥分配

点击查看代码
#include <queue>
#include <utility>
#include <stdio.h>
#include <string.h>
#include <algorithm>
const int N = 1e5 + 5;
typedef std::pair<int, int> PII;
PII a[N], b[N]; int n, ma, mb, suma[N], sumb[N], res;
void solve(int m, std::pair<int, int> p[N], int *sump) {
	std::priority_queue<PII, std::vector<PII>, std::greater<PII> > heap1, heap2;
	// heap: [停机场,离开时间] heap1: first=离开时间, heap2: first=停机场
	int tot = 0;
	for(int i = 1; i <= m; i ++) {
		while(heap1.size() && heap1.top().first < p[i].first) // 将所有的之前离开的放入可使用队列
			heap2.push({heap1.top().second, heap1.top().first}), heap1.pop();
		if(heap2.empty()) // 新开一个
			sump[++ tot] = 1, heap1.push({p[i].second, tot});
		else // 尽量放入编号小的
			sump[heap2.top().first] ++, heap1.push({p[i].second, heap2.top().first}), heap2.pop();
	}
	for(int i = 1; i <= n; i ++) sump[i] += sump[i - 1]; // 累计所有飞机
}
int main() {
// 	freopen("airport.in", "r", stdin);
// 	freopen("airport.out", "w", stdout);
	scanf("%d%d%d", &n, &ma, &mb);
	for(int i = 1; i <= ma; i ++) scanf("%d%d", &a[i].first, &a[i].second);
	for(int i = 1; i <= mb; i ++) scanf("%d%d", &b[i].first, &b[i].second);
	std::sort(a + 1, a + ma + 1), std::sort(b + 1, b + mb + 1), solve(ma, a, suma), solve(mb, b, sumb);
	for(int i = 0; i <= n; i ++) res = std::max(res, suma[i] + sumb[n - i]);
	printf("%d\n", res), fclose(stdin), fclose(stdout);
	return 0;
}

标签:std,heap1,CSP2021,int,廊桥,include,重做
From: https://www.cnblogs.com/azzc/p/16775257.html

相关文章

  • 【补档】CSP2021-J 游记
    (洛谷博客版本)前传:CSP2020-J游记上一次拿了2=,这次争取冲1=!主要时间花在复赛内容上面了,初赛没怎么搞。初赛看到前15题一阵狂喜:这次稳了。单选好像只错了两三题的......
  • CSP2021 S2参考解析
    目录CSP2021S2P7913[CSP-S2021]廊桥分配airportP7914[CSP-S2021]括号序列bracketP7915[CSP-S2021]回文palinP7916[CSP-S2021]交通规划trafficCSP2021S2......
  • CSP2020廊桥分配
    [CSP-S2021]廊桥分配题目描述当一架飞机抵达机场时,可以停靠在航站楼旁的廊桥,也可以停靠在位于机场边缘的远机位。乘客一般更期待停靠在廊桥,因为这样省去了坐摆渡车前往......
  • CSP2021括号序列
    [CSP-S2021]括号序列题目描述小w在赛场上遇到了这样一个题:一个长度为\(n\)且符合规范的括号序列,其有些位置已经确定了,有些位置尚未确定,求这样的括号序列一共有多少......
  • CSP202109_2
    CSP202109_2目录CSP202109_2题目思路暴力差分优化Code题目非零段划分思路暴力直接暴力,依次枚举所有可能的p,针对当前p遍历序列求非零段个数。时间复杂度\(O(n^2)\)......
  • CSP2021-s题解
    T1廊桥分配题目链接P7913[CSP-S2021]廊桥分配\(Lemma:\)对于已经存在的廊桥集合,加入新的廊桥不会影响之前分配好的航班。证明:由于题目所给限制,若有空廊桥,则航......
  • CSP2021初赛游记
    csp2022开打,把去年的游记找出来,在这里补了CSP2021初赛游记早上7:30去省初门口等crxis,可以和他一起做地铁去,然而最后也就3个学生,准确来说是3个学生加1个家长在等。我当时......
  • 用1年时间把网站权重做到4的企业站优化案例
    ​我做的这个行业是属于偏冷行业,同行那些不专业的家伙,都把重点放在网站上面,百度一搜产品词,大半都是网站平台在首页,我心里就冷笑了。其实,我只做站内优化,首页和产品页面全......
  • CSP202112-4 磁盘文件操作
        第一眼,嗯,线段树裸题。开写,交,发现空间炸了,遂离散化。再交,发现在操作0的时候有可能遇到离散化中没出现过的点(即给定数据外的点),因为要二分右端点。怎么办呢?大胆观......