Comet OJ - 2019国庆欢乐赛 C题 两排房子
题目大意:这里有横着的两排房子,给你每个房子的左端点和右端点。若两排房子中分别有两个房子 x y ,他们在横坐标上有重叠部分(端点重叠也算),则被称为 “对门” 关系。
问你总共有多少个 “对门” 关系。
分析:
显然题目要让你求的是,枚举第一排各个房子,然后找第二排有多少个房子区间与之有交集部分。
第一排: [ ]
第二排:[ ] [ ] [ ] [ ]
画一下可以看出:将第二排的房子以左端点从小到大排序后,对应找第一排某个房子的贡献,只需要找到第一排的这个房子的区间内,能括起来多少个房子即可。
由于只要有重叠就算,故假设第一排的某个房子的左右端点为 a b ,第二排的某个房子中,左右端点为 x y ,那么只要在第二排中二分:
1、找到第一个大于等于 a 的 y ,然后记下起点标号 st 。
2、找到最后一个小于等于 b 的 x ,然后记下终点标号 en。
故第一排这个房子所能提供的贡献为:en - st + 1 。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int n,m;
ll ans;
struct Node{
int l,r;
Node(){};
Node(int _l,int _r){
l=_l,r=_r;
}
}a[];
bool cmp1(Node q,Node w){
return q.l<w.l;
}
bool cmp2(Node q,Node w){
return q.r<w.r;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d%d",&a[i].l,&a[i].r);
}
sort(a+,a+n+,cmp1);
int A,B;
for(int i=;i<=m;i++){
scanf("%d%d",&A,&B);
int st=lower_bound(a+,a+n+,Node(,A),cmp2)-a;
int en=upper_bound(a+,a+n+,Node(B,),cmp1)-a-;
ans+=1ll*(en-st)+1ll;
}
printf("%lld\n",ans );
}
Comet OJ - 2019国庆欢乐赛 C题 两排房子的更多相关文章
- Comet OJ 2019 夏季欢乐赛题解
Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ...
- Comet OJ - 2019 六一欢乐赛
传送门 #A: 思路:等差数列求和,看成俩次1+2+…+ n,多加的n减去,所以 ans = n*(n+1) - n. AC代码: #include<iostream> #include& ...
- 【题解】Comet OJ 国庆欢乐赛 简要题解
[题解]Comet OJ 国庆欢乐赛 简要题解 A 直接做 B 直接做,结论: \[ ans=\max([Max\ge \mathrm{sum}] Max,s[n]/2) \] C 考虑这样一个做法: ...
- ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval
ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval 题目大意:给一个长度为n,值域为[1, n]的序列{a},要求支持m次操作: 单点修改 1 pos val 询 ...
- TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)
配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FE ...
- ACM-ICPC 2019南昌网络赛F题 Megumi With String
ACM-ICPC 南昌网络赛F题 Megumi With String 题目描述 给一个长度为\(l\)的字符串\(S\),和关于\(x\)的\(k\)次多项式\(G[x]\).当一个字符串\(str ...
- Comet OJ-2019国庆欢乐赛
国庆玩的有点嗨,开学了补题. A轰炸平面镇魂曲 题目描述 虹村万泰是一位二维世界的替身使者,他的替身 "轰炸平面镇魂曲" 能产生一条直线分割整个平面. 一开始,平面上有一个矩形,其 ...
- 无聊的活动/缘生意转(2018 Nova OJ新年欢乐赛B题)解题报告
题目2(下面的太抓 我重新写了个背景 其他都一样) 无聊的活动 JLZ老师不情愿的参加了古风社一年一度的活动,他实在不觉得一群学生跳舞有什么好看,更不明白坐在身后的学生为什么这么兴奋(看小姐姐),于是 ...
- 2019建模美赛B题(派送无人机)M奖论文
昨天上午出了建模美赛的结果,我们小组获得的是M奖,感觉挺开心的.我一直觉得拿O奖那种是个概率事件,需要天时地利人和的各种因素都合适才行,所以看到自己是M奖,感觉自己的能力已经得到了认可就很满意了.今天 ...
随机推荐
- 一篇干货满满的 NFS 文章
目录 NFS 1. 安装 2. 配置 3. 启动并添加到开机自启 4. NFS 客户端挂载 5 报错与解决办法 6. Win 系统安装 NFS client NFS 1. 安装 yum install ...
- SQL 存储过程示例讲解
create proc score_result ) --参数 as declare --定义变量@courseNo int, @testTime1 datetime, @avg int begin ...
- Failure to transfer org.springframework:spring-jcl:jar:5.0.7.RELEASE from
错误信息: Failure to transfer org.springframework.boot:spring-boot-maven-plugin:pom:1.5.4.RELEASE from h ...
- Flask框架整个流程源码解读
Flask框架整个流程源码解读 一.总的流程 运行Flask其本质是运行Flask对象中的__call__,而__call__本质调用wsgi_app的方法 wsgi_app方法 def wsgi_a ...
- springboot 快速开发的定制补充
增强 SpringBoot 快速开发工具 项目地址:https://gitee.com/sanri/web-ui 优点:这是一个 web 通用配置的组件,即插即用,可用于新项目或私活.是对 Sprin ...
- Cocos2d-x 学习笔记(23) 分辨率与屏幕适配
Cocos2d-x的分辨率可以分为两种:屏幕分辨率和设计分辨率. 屏幕分辨率就是屏幕窗口的大小,单位是像素. 设计分辨率单位是点,一个点可能包括多个像素. 如果把一台显示器自身的分辨率比作屏幕分辨率的 ...
- MVC路径无匹配或请求api版本过低时处理
解决方案:RequestMappingHandlerMapping中重写handleNoMatch方法,springMVC和springboot中配置无区别. 另: 1.可搭配advice处理抛出的异 ...
- boost::multi_index 多索引容器
#include "stdafx.h" #include <string> #include <boost/multi_index_container.hpp&g ...
- robotframework+ride+python3环境搭建
一.windows下安装python3.6 1.官网下载安装包https://www.python.org/downloads/windows/ 2.进行安装,接下来步骤一直next即可 二.cmd下 ...
- jquery mutilselect 插件添加中英文自动补全
jquery mutilselect默认只能根据设置的option来进行自动提示 $.each(availableTags, function(key, value) { $('#channels') ...