博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF815D Karen and Cards
阅读量:6226 次
发布时间:2019-06-21

本文共 1176 字,大约阅读时间需要 3 分钟。

 

固定一维c,然后(a,b)看成坐标,矩形区域求交

1.Segment tree Beats!

2.改成不合法的区域就是求并,c反向枚举,区域只增不减且完全包含之前的

单调栈预处理找到轮廓线,然后两个指针维护顶头位置即可

#include
#define reg register int#define il inline#define int long long#define numb (ch^'0')using namespace std;typedef long long ll;il void rd(int &x){ char ch;x=0;bool fl=false; while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true); for(x=numb;isdigit(ch=getchar());x=x*10+numb); (fl==true)&&(x=-x);}namespace Miracle{const int N=500000+5;int n,A,B,C;ll ans,sum;struct node{ int a,b,c;}p[N];bool cmpa(node a,node b){ return a.a
b.c;}int sta[N],top;int x[N],y[N];int main(){ rd(n);rd(A);rd(B);rd(C); for(reg i=1;i<=n;++i) rd(p[i].a),rd(p[i].b),rd(p[i].c); sort(p+1,p+n+1,cmpa); for(reg i=1;i<=n;++i){ while(top&&p[sta[top]].b
p[sta[i+1]].b;--j) y[j]=p[sta[i]].a; }// for(reg i=1;i<=A;++i){// cout<
<<" ";// }cout<
=1;--i){ // cout<<" i "<
<<" tx "<
<<" ty "<
<
=i){ // cout<<" p[j] "<
<<" "<
<

很套路了

排序,然后偏序想到坐标矩形求面积

交和并的转化,容斥。或者大力吉司机线段树

 

转载于:https://www.cnblogs.com/Miracevin/p/10483513.html

你可能感兴趣的文章
王立平--Failed to push selection: Read-only file system
查看>>
numpy转换
查看>>
《FreeSWITCH: VoIP实战》:SIP 模块 - mod_sofia
查看>>
Codeforces Good Bye 2015 D. New Year and Ancient Prophecy 后缀数组 树状数组 dp
查看>>
ZOJ 3635 Cinema in Akiba(线段树)
查看>>
[Android]使用Dagger 2依赖注入 - DI介绍(翻译)
查看>>
(转)BT1120接口及协议
查看>>
Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
查看>>
u3d demo起步第二章
查看>>
The Dataflow Model 论文
查看>>
Linux守护进程
查看>>
Redis的字典(dict)rehash过程源代码解析
查看>>
遇到没“人性”的管理:你真可怜!
查看>>
局域网之php项目IP访问共享
查看>>
http://www.bootcss.com/p/font-awesome/
查看>>
新浪微博UWP UI意见征求
查看>>
使用ServiceStack构建Web服务
查看>>
Linqer工具
查看>>
table中超过长度的列,显示省略号
查看>>
Qtcreator中经常使用快捷键总结
查看>>