【题解】Comet OJ 国庆欢乐赛 简要题解
【题解】Comet OJ 国庆欢乐赛 简要题解
A
直接做
B
直接做,结论:
\]
C
考虑这样一个做法:
对于一个左房子\((l,r)\),所有合法的右房子放在\(l-r\)坐标系上,合法的点是\((l',r')\)满足\(l'\le r \and r'\ge l\)的所有点。通过sort保证\(l'\le r\)合法,然后树状数组查询所有\(r'\ge l\)的个数。复杂度\(O(n\log M)\),要离散化
//@winlere
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<set>
using namespace std; typedef long long ll;
inline int qr(){
register int ret=0,f=0;
register char c=getchar();
while(c<48||c>57)f|=c==45,c=getchar();
while(c>=48&&c<=57) ret=ret*10+c-48,c=getchar();
return f?-ret:ret;
}
const int maxn=2e5+5;
int sav[maxn<<2];
int n,m,cnt,len;
#define l first
#define r second
pair<int,int> data[maxn],data2[maxn];
inline int arc(int x){return lower_bound(sav+1,sav+len+1,x)-sav;}
int seg[maxn<<2];
inline void add(const int&pos,const int&tag){
for(int t=pos;t<=len+1;t+=t&-t) seg[t]+=tag;
}
inline ll que(const int&pos){
int ret=0;
for(int t=pos;t>0;t-=t&-t) ret+=seg[t];
return ret;
}
int main(){
n=qr(); m=qr();
for(int t=1;t<=n;++t){
int t1=qr(),t2=qr();
data[t]={t1,t2};
sav[++*sav]=t1; sav[++*sav]=t2;
}
for(int t=1;t<=m;++t){
int t1=qr(),t2=qr();
data2[t]={t1,t2};
sav[++*sav]=t1; sav[++*sav]=t2;
}
sort(sav+1,sav+*sav+1);
len=unique(sav+1,sav+*sav+1)-sav-1;
for(int t=1;t<=n;++t) data[t].l=arc(data[t].l),data[t].r=arc(data[t].r);
for(int t=1;t<=m;++t) data2[t].l=arc(data2[t].l),data2[t].r=arc(data2[t].r);
sort(data+1,data+n+1);
sort(data2+1,data2+m+1);
ll ans=0;
for(int t=1,pos=0;t<=n;++t){
while(pos<m&&data2[pos+1].l<=data[t].r) add(data2[++pos].r,1);
ans+=pos-que(data[t].l-1);
}
printf("%lld\n",ans);
return 0;
}
【题解】Comet OJ 国庆欢乐赛 简要题解的更多相关文章
- Comet OJ 夏季欢乐赛 篮球校赛
Comet OJ 夏季欢乐赛 篮球校赛 题目传送门 题目描述 JWJU注重培养学生的"唱,跳,rap,篮球"能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台 ...
- Comet OJ 夏季欢乐赛 Gree的心房
Comet OJ 夏季欢乐赛 Gree的心房 题目传送门 题目描述 据说每一个走进Gree哥哥心房的小姑娘都没有能够再走出来-- 我们将Gree哥哥的心房抽象成一个n \times mn×m的地图,初 ...
- Comet OJ 夏季欢乐赛 分配学号
Comet OJ 夏季欢乐赛 H 分配学号 题目传送门 题目描述 今天,是JWJU给同学们分配学号的一天!为了让大家尽可能的得到自己想要的学号,鸡尾酒让大家先从 [1,10^{18}][1,1018] ...
- Comet OJ CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)
Preface 在一个月黑风高的夜晚我这个蒟蒻正踌躇着打什么比赛好 是继续做一场AGC,还是去刷一场CF 然后,一道金光闪过(滑稽),我们的红太阳bzt给我指明了方向: 你太菜了,我知道有一场很水的比 ...
- Comet OJ-2019国庆欢乐赛
国庆玩的有点嗨,开学了补题. A轰炸平面镇魂曲 题目描述 虹村万泰是一位二维世界的替身使者,他的替身 "轰炸平面镇魂曲" 能产生一条直线分割整个平面. 一开始,平面上有一个矩形,其 ...
- Comet OJ 夏季欢乐赛 烤面包片
烤面包片 https://cometoj.com/contest/59/problem/C?problem_id=2698 题目描述 鸡尾酒最喜欢吃东北的烤面包片了.每次到东北地区的区域赛或者是秦皇岛 ...
- Comet OJ 夏季欢乐赛 完全k叉树
完全k叉树 https://cometoj.com/contest/59/problem/A?problem_id=2712 题目描述 欢迎报考JWJU!这里有丰富的社团活动,比如为梦想奋斗的ACM集 ...
- Comet OJ 夏季欢乐赛 距离产生美
距离产生美 https://cometoj.com/contest/59/problem/B?problem_id=2680 题目描述 JWJU放暑假了,于是鸡尾酒就和女朋友璇璇一起出去玩.但是外面太 ...
- CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)D
题面 一开始想到一个 O(N^2) 做法,先把x排序,然后顺次枚举x最大的点,看向前最多可以保留多少点 (也就是先不管正方形的上下长度限制,先考虑左右的限制).然后再对这些点做一遍类似的..(等等这么 ...
随机推荐
- Java练习 SDUT-1132_斐波那契数列
C/C++经典程序训练2---斐波那契数列 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写计算斐波那契(Fibon ...
- HZOJ Tree
看到换根果断lct啊,然而其实我板子还没有打熟,还不会维护子树信息,于是就挂掉了…… 然而正解并不是lct. 其实好像很久很久以前将lca的时候好像讲到过一道换根的题,当时没有听懂. 直接说正解吧: ...
- Export与import命令
模块功能主要由两个命令构成:export和import. export命令用于用户自定义模块,规定对外接口: import命令用于输入其他模块提供的功能,同时创造命名空间(namespace),防止函 ...
- 「BZOJ3505」[CQOI2014] 数三角形
「BZOJ3505」[CQOI2014] 数三角形 这道题直接求不好做,考虑容斥,首先选出3个点不考虑是否合法的方案数为$C_{(n+1)*(m+1)}^{3}$,然后减去三点一线的个数就好了.显然不 ...
- 防止SyntaxHighlighter.js的闪烁闪一下的方法
SyntaxHighlighter.js是一个代码高亮的JS插件,使用也很简单,但是由于是浏览器段执行JS代码来着色,会出现视觉上闪一下的效果.比如你的20行代码网页打开显示高度为100px,但是Sy ...
- 【codeforces 761D】Dasha and Very Difficult Problem
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- Vue 属性绑定v-bing 事件绑定v-on
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- P1100 三连击
题目描述 我们假设一个三位整数 \(N(100 \le N \le 999)\) ,它的百位上的数字是 \(A\) ,十位上的数字是 \(B\) ,个位上的数字是 \(C\) ,如果 \(A\) , ...
- H3C IPv6地址配置命令
- H3C 常用的IPv6地址类型及格式