题目传送门

嗯,这道题的标签是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 会场预约相关推荐

  1. [洛谷P2161] [SHOI2009]会场预约

    洛谷题目链接:[SHOI2009]会场预约 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同 ...

  2. luogu2161 SHOI2009 会场预约

    题目 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突. 也就是说 ...

  3. 洛谷P2161 [SHOI2009]会场预约【Treap】

    时空限制 1000ms / 128MB 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会 ...

  4. P2161 [SHOI2009]会场预约[线段树/树状数组+二分/STL]

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...

  5. [线段树 || (STL)set ] P2161 [SHOI2009]会场预约

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...

  6. 【题解】LuoGu2161: [SHOI2009]会场预约

    原题传送门 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就 ...

  7. P2161 [SHOI2009]会场预约 (线段树:线段树上的不重复覆盖数)

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...

  8. BZOJ 2028 [SHOI2009]会场预约

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2028 题解 splay,貌似有更简单的算法? 开两个splay,一个记所有开始时间,一个 ...

  9. [SHOI2009] 会场预约

    Description 题意:支持操作: 按顺序在数轴上插入一条线段,删除并询问所有与这条线段有交的线段个数. 询问当前数轴上一共有多少条线段. Solution 想做了很久的题=.= 观察到和线段\ ...

最新文章

  1. Github 优秀开源项目 Best Open Source Projects
  2. Go安装swagger:swagger的安装与使用
  3. 高等数学下-赵立军-北京大学出版社-题解-练习9.3
  4. 关于sass(scss)、less、postcss、stylus等的用法与区别
  5. mulitpartfile怎么接收不到值_GNSS接收机设计杂谈(射频前端+捕获)
  6. 应急通信于气象雷达的应用
  7. zabbix 通过percona对mysql 进行监控,zabbix+percona+mysql 详细流程
  8. Win-mac版 AE 2018安装附教程
  9. Flutter 实现原理及跨平台实践
  10. opencv检测相交点_在网络摄像头feed opencv中检测2条线之间的交点
  11. 2011税率改革 3500起征 个人所得税计算
  12. MS5611大气压强传感器驱动代码(基于GD32F103)
  13. java窗体实现随机点名软件,求一个教师随机点名程序
  14. 聊聊reactive streams的processors
  15. 解决matplotlib(plt)的中英文字体混显问题
  16. Java操作MongoDB数据库CRUD(增删查改)
  17. atomikos JTA 源码解读
  18. mfc ListControl 重绘网格线
  19. android蓝牙广播自定义,Android 蓝牙相关的广播
  20. ChatGPT研究分享:插件模式的利与弊

热门文章

  1. android线程优先级大小,android 设置线程优先级 两种方式
  2. 乒乓球十一分制比赛规则_乒乓球的基本比赛规则
  3. Java 引用类型变量的声明和使用
  4. php中的数组用什么统计,php数组元素统计与值汇总
  5. python生成器 图片分类_Python内置类型(6)——生成器
  6. 鸿蒙系统定位低端市场,明年年初见!鸿蒙系统会先定位中低端,后续全面升级...
  7. 神经网络算法-论证单层感知器的局限性
  8. flash 火狐总是崩溃_win10系统火狐flash插件总是崩溃的解决方法
  9. vue create()获取ref_vue-next+typescript 初体验
  10. js调用python接口_JavaScript如何调用Python后端服务