hiho 1590 - 紧张的会议室。区间问题
小Hi的公司最近员工增长迅速,同时大大小小的会议也越来越多;导致公司内的M间会议室非常紧张。
现在小Hi知道公司目前有N个会议,其中第i个会议的时间区间是(Si, Ei)。 注意这里时间区间可以视为是开区间,也就是说(3, 5)和(5, 6)不会被视为是同时进行的会议。
小Hi想知道如果他新增一个会议,时间区间是(X, Y),会不会导致出现会议室不够用的情况?
已知目前的N个会议不会导致会议室不够用。
输入
第一行包含两个整数:N和M。
以下N行每行两个整数Si和Ei,代表一个会议的时间区间。
之后一行包含一个整数Q,代表小Hi询问的次数。
以下Q行每行包含两个整数Xi和Yi,表示小Hi希望新增的会议时间。
对于30%的数据,1 <= N, M, Q <= 1000
对于100%的数据,1 <= N, M, Q <= 100000 0 <= Si < Ei <= 100000000 0 <= Xi < Yi <= 100000000
----------------------------------------------------------------------------------------------------------------------------------------------------
差劲。简单的区间题wa了这么多次。
首先肯定是统计现有的厚度为m的区间,这样来了一个新的区间只需判断是否和现有的区间交叉。
判断是否交叉不如判断是否不交叉,不交叉只有三种情况:在两边是两种,还有一种是落在区间的空隙里。
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <cmath>
#include <vector>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
#define MAX(a,b) ((a)>=(b)?(a):(b))
#define MIN(a,b) ((a)<=(b)?(a):(b))
#define OO 0x0fffffff
using namespace std;
typedef long long LL;
const int N = 100100;
struct Node{
int t;
bool isstart;
Node(){}
Node(int t,bool isstart):t(t),isstart(isstart){}
bool operator<(const Node& another) const{
if(t==another.t) return isstart<another.isstart;
return t<another.t;
}
};
Node nodes[N*2];
int main(){
int n,m,s,e; cin>>n>>m;
for(int i=0;i<n;i++){
scanf("%d%d",&s,&e);
nodes[i*2+0]=Node(s,true);
nodes[i*2+1]=Node(e,false);
}
std::sort(nodes,nodes+n*2);
int cnt = 0;
vector<int> sets;
for(int i=0;i<n*2;i++){
if(!nodes[i].isstart) cnt--;
else if(++cnt==m){
sets.push_back(nodes[i+0].t);
sets.push_back(nodes[i+1].t);
}
}
cin>>n;
for(int i=0;i<n;i++){
scanf("%d%d",&s,&e);
vector<int>::iterator sec = std::lower_bound(sets.begin(),sets.end(),e);
if(s>=*(sets.end()-1)||sec==sets.begin()||(((sec-sets.begin())%2==0)&&(*(sec-1)<=s))) {
puts("YES");
}
else{
puts("NO");
}
}
return 0;
}
hiho 1590 - 紧张的会议室。区间问题的更多相关文章
- HihoCoder 1590 : 紧张的会议室(区间最大+离散化)
时间限制:20000ms 单点时限:2000ms 内存限制:256MB 描述 小Hi的公司最近员工增长迅速,同时大大小小的会议也越来越多:导致公司内的M间会议室非常紧张. 现在小Hi知道公司目前有N个 ...
- hiho一下21周 线段树的区间修改 离散化
离散化 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho ...
- hiho一下20周 线段树的区间修改
线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...
- hiho #1305 区间求差
#1305 : 区间求差 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个区间集合 A 和 B,其中集合 A 包含 N 个区间[ A1, A2 ], [ A3, ...
- hihocoder 1305 - 区间求差 - [hiho一下152周][区间问题]
题目链接:https://hihocoder.com/problemset/problem/1305 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个区间集合 A ...
- 区间问题 codeforces 422c+hiho区间求差问
先给出一个经典的区间处理方法 对每个区间 我们对其起点用绿色标识 终点用蓝色标识 然后把所有的点离散在一个坐标轴上 如下图 这样做有什么意义呢.由于我们的区间可以离散的放在一条轴上面那么我们在枚举区 ...
- hihocoder 1323 - 回文字符串 - [hiho一下162周][区间dp]
用dp[i][j]表示把[i,j]的字符串str改写成回文串需要的最小操作步数. 并且假设所有dp[ii][jj] (ii>i , jj<j)都为已知,即包括dp[i+1][j].dp[i ...
- hiho#1080 更为复杂的买卖房屋姿势 线段树+区间更新
#1080 : 更为复杂的买卖房屋姿势 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho都是游戏迷,“模拟都市”是他们非常喜欢的一个游戏,在这个游戏里面他们 ...
- 252. Meeting Rooms 区间会议室
[抄题]: Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],.. ...
随机推荐
- Js radio
<input type="radio" name="sex" value="1" />男 <input type=&quo ...
- redis简单的事务
Redis与 mysql事务的对比 占位 Mysql Redis 开启 start transaction muitl 语句 普通sql 普通命令 失败 rollback 回滚 discard 取消 ...
- SpringBoot(六) SpirngBoot与Mysql关系型数据库
pom.xml文件的配置 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- P1634 禽兽的传染病
题目背景 mxj的启发. 题目描述 禽兽患传染病了.一个禽兽会传染x个禽兽.试问n轮传染后有多少禽兽被传染? 输入输出格式 输入格式: 两个数x和n. 输出格式: 一个数:被传染的禽兽数. 输入输出样 ...
- JavaScript基础知识-正则表达式
正则表达式 作用:定义一个特定的验证字符串内容规则的表达式 注:正则表达式并不是JavaScript独有的:JavaScript支持正则表达式 var a = { }; // 定义一个空对象 ...
- python学习——正则表达式
正则表达式 正则表达式的主要作用就是对字符串进行匹配,通过匹配,进行筛选,选择出符合规则的字符串.其实正则表达式的作用就像是一个过滤器一样.你输入好自己的 ...
- JSON是什么?为JavaScript准备的数据格式
JSON是什么?为JavaScript准备的数据格式 还不了解JSON是什么?看了下面这篇文章,您对JSON是什么应该能够有了一个比较清晰的概念. JSON 即 JavaScript. Object ...
- 安装wampserver遇到的问题及解决方案
丢失api-ms-win-crt-runtime-l1-1-0.dll 安装完wampserver,启动服务器的时候遇到一些问题,提示说缺失dll文件,如下图所示: 网上一搜,很多人出现过丢失api- ...
- vue无缝滚动的插件开发填坑分享
写插件的初衷 1.项目经常需要无缝滚动效果,当时写jq的时候用用msClass这个老插件,相对不上很好用. 2.后来转向vue在vue-awesome没有找到好的无缝滚动插件,除了配置swiper可以 ...
- Spring的ApplicationContextAware接口的作用
ApplicationContextAware接口: 当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean.换句话说,就是这个类可以直接获取Spr ...