蓝桥-ALGO-40-会议中心
ACM模版
描述
题解
离散 + 二分 + 贪心,第一次见这种组合,很有搞头,代码十分有趣,可以好好琢磨琢磨~~~
代码
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <string>
#include <set>using namespace std;const int MAXN = 2e5 + 10;
const int INF = 0x3f3f3f3f;struct node
{int l, r;node() {}node(int l_, int r_) : l(l_), r(r_) {}bool operator < (const node &s) const{return l < s.l || (l == s.l && r < s.r);}
};int n;
int tag[MAXN << 1];
int net[20][MAXN << 1]; // 存储下一个区间的起点
int cnt = 0, limit = 1, limit_;
node A[MAXN];
node B[MAXN];
node tmp[MAXN];
set<node> ss;
set<node>::iterator it;int bs(int x)
{for (int l = 0, r = limit - 1; l < r + 1;){int m = (l + r) >> 1;if (x == tag[m]){return m;}if (x < tag[m]){r = m - 1;}else{l = m + 1;}}return 0;
}bool cmp(const node &a,const node &b)
{return a.r < b.r || (a.r == b.r && a.l > b.l);
}// 离散化
void discrete()
{sort(tag, tag + (n << 1));limit = (int)(unique(tag, tag + (n << 1)) - tag);for (int i = 0; i < n; i++){tmp[i] = A[i] = node(bs(A[i].l), bs(A[i].r));}sort(tmp, tmp + n, cmp);int p = 0;B[cnt++] = tmp[0];for (int i = 1; i < n; ++i){if (tmp[i].l > tmp[p].l){B[cnt++] = tmp[p = i];}}
}void next_set()
{int p = cnt - 1;net[0][limit] = INF;for (int j = limit - 1; j >= 0; j--){if (p > -1 && j == B[p].l){net[0][j] = B[p--].r + 1;}else{net[0][j] = net[0][j + 1];}}for (int i = 0; 1; i++){bool flag = 0;net[i + 1][limit] = INF;for (int k = 0; k < limit; k++){if (net[i][k] == INF){net[i + 1][k] = INF;}else{net[i + 1][k] = net[i][net[i][k]];}if (net[i + 1][k] < INF){flag = 1;}}if (!flag){limit_ = i;break;}}
}int max_cnt(int l, int r)
{if (l > r){return 0;}r++;int ans = 0, p = l;for (int i = limit_; i > -1 && p < r; i--){if (net[i][p] <= r){p = net[i][p];ans += 1 << i;}}return ans;
}bool query(int x)
{int l = A[x].l, r = A[x].r;it = ss.lower_bound(node(l, INF));if (it-- == ss.begin()){return 0;}int l_ = it->l, r_ = it->r;if (l_ > l || r_ < r){return 0;}if (max_cnt(l_, l - 1) + max_cnt(r + 1, r_) + 1 < max_cnt(l_, r_)){return 0;}ss.erase(it);if (l_ < l){ss.insert(node(l_, l - 1));}if (r < r_){ss.insert(node(r + 1, r_));}return 1;
}int main()
{cin >> n;int l, r;for (int i = 0; i < n; i++){scanf("%d%d", &l, &r);A[i] = node(l, r);// 用于离散化tag[i << 1] = l;tag[(i << 1) + 1] = r;}discrete();next_set();printf("%d\n", max_cnt(0, limit - 1));ss.insert(node(0, limit - 1));for (int i = 0; i < n; i++){if (query(i)){printf("%d ", i + 1);}}putchar(10);return 0;
}
蓝桥-ALGO-40-会议中心相关推荐
- 蓝桥杯 ALGO-40算法训练 会议中心 (APIO 2009)
时间限制:2.0s 内存限制:512.0MB 关键字:APIO 2009 会议中心 Siruseri政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议. 对于 ...
- acmore|acmore.cc1211采油区域1212会议中心1213抢掠计划APIO2009
采油区域: #include <iostream> #include <algorithm> #include <cstdio> #include <cstd ...
- SVS为某公司打造先进的无纸化会议中心
SVS此次为某公司打造一个无纸化会议中心,会场一共设置35个席位,为每个席位布置了桌面液晶升降器+话筒升降器,两者分开升降,可以轻松实现普通会议.多媒体会议.无纸化会议等多种会议模式. 超薄液晶屏升降 ...
- 新闻!龙漫集团“有艺翼”行动@Kid.ArtWing+国际少儿艺术展在国家会议中心开幕
2019年1月26日,2019年1月26日,龙漫集团战略副总裁姚華先生发起的龙漫星际乐园 x 龙漫星际国际动漫谷"有艺翼"行动 ICAE国际儿童画展@Kid.ArtWing+国际少 ...
- 新闻!版权猫的进击!ip猫ipMALL.io@Kid.ArtWing+国际少儿艺术展在国家会议中心开幕
2019年1月26日,2019年1月26日,龙漫集团战略副总裁姚華先生发起的龙漫星际乐园 x 龙漫星际国际动漫谷"有艺翼"行动 ICAE国际儿童画展@Kid.ArtWing+国际少 ...
- 大新闻!针对少儿的“有艺翼”与“艺术饭+”行动 ICAE@Kid.ArtWing+国际少儿艺术展在国家会议中心开幕
2019年1月26日,2019年1月26日,龙漫集团战略副总裁姚華先生发起的龙漫星际乐园 x 龙漫星际国际动漫谷"有艺翼"行动 ICAE国际儿童画展@Kid.ArtWing+国际少 ...
- 万科2015苏州城市乐跑音乐节昨日在太湖国际会议中心开跑
由万科主办的2015苏州城市乐跑昨日在苏州太湖国际会议中心开跑,不过还是要吐槽一下,活动办的不是太地道,一路下来竟然一口补给水都没喝到... 准备出发 分配跟车 半程处 去晚了,人家都跑完了 蜗牛合影 ...
- 倾力改造,扩容5倍,这个世界一流会议中心将于泰国曼谷CBD全新亮相
曼谷2021年8月19日 /美通社/ -- 泰国诗丽吉王后国家会议中心(QSNCC)将于2022年以全新之姿亮相曼谷,新会议中心的容量是旧会议中心的5倍.凭借5亿美元的投资价值,TCC资产(TCC A ...
- 1178: [Apio2009]CONVENTION会议中心
1178: [Apio2009]CONVENTION会议中心 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 824 Solved: 327 [ ...
- BZOJ 1178 APIO 2009 会议中心
提示: 1. NOIP开车旅行做过的小伙伴肯定能搞定此题 这个题目网上题解很多 , 这里不赘述 , 提供一个可读一些的代码实现: #include <iostream> #include ...
最新文章
- ASP.NET2.0 GridView小技巧汇粹
- 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
- PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet
- AutoCAD .NET API二次开发学习指南
- 10.1.1 head标签
- Django Rest框架 APIView源码调用
- 【script】python中的函数式编程
- 1.4 Arithmetic Progressions
- 《Algorithms》Java 语言特性
- 设计模式 (五) 原型模式
- 网络拓扑结构_全球网络拓扑测绘这样来实现
- .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)
- Elasticsearch 创建索引 Java 实现
- 云服务器防火墙开放端口访问--电信云服务器
- RuntimeWarning: overflow encountered in exp
- 算法基础部分-二叉树
- python数字求和菜鸟教程_Python Number(数字) | 菜鸟教程
- Qt Creator嵌入式python时报错error: ::hypot has not been declared
- 【Proteus仿真】ATMEGA16 ADC转化数码管显示
- 银行暑期实习生面试经验
热门文章
- 超神之路-Redis
- 营销圈告诉你,“不涂口红的你”是怎样带动营销的?
- Nginx 搭建文件服务器
- 算法期中1007. 怪兽训练 (找出有向图中所有的强连通分量的Kosaraju算法)
- 基于语义解析任务探究深度模型的组合泛化能力
- 使用CentOS7卸载自带jdk安装自己的JDK1.8
- thrift 库使用心得
- linux中systemctl命令理解以及.service文件参数解析
- 2018纪中暑期15天期末考试 总结
- 怎么判断前轮左右的位置_驾驶位怎么判断前轮的位置 怎样确定汽车前面左右轮的位置?...