SHOI2009 会场预约
题目传送门
嗯,这道题的标签是STL,因为这个STL用的确实太妙了
这道题目要求维护一堆区间,而一个重要的操作是要删除所有与新区间冲突的区间
虽然可以用\(Splay\)来操作,但用STL里的set也绝对不虚
其中最精妙的当属这个重载运算符
它的意思是当两个区间相交时,这两个区间相等
struct zzz {int l, r;bool operator < (const zzz &y) const { return r < y.l; }
}; set <zzz> q;
重载完运算符,再凭借set的find函数,就可以很容易的通过此题
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#define LL long long
using namespace std;
LL read() {LL k = 0; char c = getchar();while(c < '0' || c > '9') c = getchar();while(c >= '0' && c <= '9')k = k * 10 + c - 48, c= getchar();return k;
}
char read_c() {char c = getchar();while(c != 'A' && c != 'B') c = getchar();return c;
}
struct zzz {int l, r;bool operator < (const zzz &y) const { return r < y.l; }
}; set <zzz> q;
int main() {int m = read();while(m--) {char opt = read_c();if(opt == 'A') {int l = read(), r = read(), cnt = 0;zzz k = (zzz){l, r};set<zzz> :: iterator it = q.find(k);//将相交的区间全都删去while(it != q.end()) {++cnt; q.erase(it);it = q.find(k);}q.insert(k);printf("%d\n", cnt);}else printf("%d\n", q.size());}return 0;
}
转载于:https://www.cnblogs.com/wxl-Ezio/p/11011374.html
SHOI2009 会场预约相关推荐
- [洛谷P2161] [SHOI2009]会场预约
洛谷题目链接:[SHOI2009]会场预约 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同 ...
- luogu2161 SHOI2009 会场预约
题目 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突. 也就是说 ...
- 洛谷P2161 [SHOI2009]会场预约【Treap】
时空限制 1000ms / 128MB 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会 ...
- P2161 [SHOI2009]会场预约[线段树/树状数组+二分/STL]
题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...
- [线段树 || (STL)set ] P2161 [SHOI2009]会场预约
题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...
- 【题解】LuoGu2161: [SHOI2009]会场预约
原题传送门 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就 ...
- P2161 [SHOI2009]会场预约 (线段树:线段树上的不重复覆盖数)
题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...
- BZOJ 2028 [SHOI2009]会场预约
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2028 题解 splay,貌似有更简单的算法? 开两个splay,一个记所有开始时间,一个 ...
- [SHOI2009] 会场预约
Description 题意:支持操作: 按顺序在数轴上插入一条线段,删除并询问所有与这条线段有交的线段个数. 询问当前数轴上一共有多少条线段. Solution 想做了很久的题=.= 观察到和线段\ ...
最新文章
- Github 优秀开源项目 Best Open Source Projects
- Go安装swagger:swagger的安装与使用
- 高等数学下-赵立军-北京大学出版社-题解-练习9.3
- 关于sass(scss)、less、postcss、stylus等的用法与区别
- mulitpartfile怎么接收不到值_GNSS接收机设计杂谈(射频前端+捕获)
- 应急通信于气象雷达的应用
- zabbix 通过percona对mysql 进行监控,zabbix+percona+mysql 详细流程
- Win-mac版 AE 2018安装附教程
- Flutter 实现原理及跨平台实践
- opencv检测相交点_在网络摄像头feed opencv中检测2条线之间的交点
- 2011税率改革 3500起征 个人所得税计算
- MS5611大气压强传感器驱动代码(基于GD32F103)
- java窗体实现随机点名软件,求一个教师随机点名程序
- 聊聊reactive streams的processors
- 解决matplotlib(plt)的中英文字体混显问题
- Java操作MongoDB数据库CRUD(增删查改)
- atomikos JTA 源码解读
- mfc ListControl 重绘网格线
- android蓝牙广播自定义,Android 蓝牙相关的广播
- ChatGPT研究分享:插件模式的利与弊
热门文章
- android线程优先级大小,android 设置线程优先级 两种方式
- 乒乓球十一分制比赛规则_乒乓球的基本比赛规则
- Java 引用类型变量的声明和使用
- php中的数组用什么统计,php数组元素统计与值汇总
- python生成器 图片分类_Python内置类型(6)——生成器
- 鸿蒙系统定位低端市场,明年年初见!鸿蒙系统会先定位中低端,后续全面升级...
- 神经网络算法-论证单层感知器的局限性
- flash 火狐总是崩溃_win10系统火狐flash插件总是崩溃的解决方法
- vue create()获取ref_vue-next+typescript 初体验
- js调用python接口_JavaScript如何调用Python后端服务