当前位置: 首页 > news >正文

[temporary] Arkady and rectangles

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL N=1e5+10,LG=18,inf=1e8;
LL n,o[N];
struct Mat { LL a,b,c,d; }tk[N];
struct Miku
{LL bin[N*2],tot;void ins(LL x) { bin[++tot]=x; }void init() { sort(bin+1,bin+tot+1); tot=unique(bin+1,bin+tot+1)-bin-1; }LL find(LL x) { return lower_bound(bin+1,bin+tot+1,x)-bin; }
}B1,B2;#define ls (k<<1)
#define rs (k<<1|1)
#define mid ((l+r)>>1)
namespace T1
{const LL M=N*LG*3;struct node { int lson,rson,tag,ver; }t[M];#define LS(u) t[u].lson#define RS(u) t[u].rsonLL ST[M],TOP;void init(){for(int i=0;i<M;i++) ST[i]=i;TOP=M-1;t[0].tag=-inf;}LL newID() { return ST[TOP--]; }void delID(LL u) { ST[++TOP]=u; }void modify(LL L,LL R,int val,int ver,int &k,LL l=1,LL r=n*2){if(l>R||L>r) return;if(!k||t[k].ver!=ver){int p=newID(); t[p]=t[k],k=p;t[k].ver=ver;}if(L<=l&&r<=R) return t[k].tag=max(t[k].tag,val),void();modify(L,R,val,ver,LS(k),l,mid);modify(L,R,val,ver,RS(k),mid+1,r);}void recyc(int ver,int &k,LL l=1,LL r=n*2){if(t[k].ver!=ver||!k) return;if(l!=r) recyc(ver,LS(k),l,mid),recyc(ver,RS(k),mid+1,r);delID(k),k=0;}void dfs(LL k,LL k2,LL k3,int col=0,int mx=-inf,int mn=-inf,LL l=1,LL r=n*2)//k=tag,k2=max,k3=min{if(!k) return;if(k2) mx=max(mx,t[k2].tag);if(k3) mn=max(mn,t[k3].tag);col=max(col,t[k].tag);printf(" [dfs %lld~%lld %d,%d,%d]\n",l,r,col,mx,-mn);if(LS(k)+RS(k)==0)if(max(-mn,mx)<col)o[col]=1;dfs(LS(k),LS(k2),LS(k3),col,mx,mn,l,mid);dfs(RS(k),RS(k2),RS(k3),col,mx,mn,mid+1,r);}
}
namespace Deco
{struct Mod { LL l,r,val; };vector<Mod> t1[N<<2],t2[N<<2];//t1 is tag&max,t2 is minvoid modify(LL L,LL R,Mod v,LL k=1,LL l=1,LL r=n*2){if(l>R||L>r) return;t2[k].push_back(v);if(L<=l&&r<=R) return t1[k].push_back(v),void();modify(L,R,v,ls,l,mid);modify(L,R,v,rs,mid+1,r);}int rt[N<<2];void dfs(LL k=1,LL l=1,LL r=n*2){rt[k]=rt[k>>1];int A=0,B=0;//A is for tag,B for minprintf("[# %lld~%lld]---\n",l,r);for(auto i:t1[k]) T1::modify(i.l,i.r,i.val,0,A);for(auto i:t2[k]) T1::modify(i.l,i.r,-i.val,0,B);T1::dfs(A,rt[k],B);T1::recyc(0,A),T1::recyc(0,B);for(auto i:t1[k]) T1::modify(i.l,i.r,i.val,k,rt[k]);if(l!=r) dfs(ls,l,mid),dfs(rs,mid+1,r);T1::recyc(k,rt[k]);}
}
int main()
{freopen("data.txt","r",stdin);T1::init();scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld%lld%lld%lld",&tk[i].a,&tk[i].b,&tk[i].c,&tk[i].d);tk[i].c--,tk[i].d--;B1.ins(tk[i].a),B1.ins(tk[i].c);B2.ins(tk[i].b),B2.ins(tk[i].d);}B1.init(),B2.init();for(int i=1;i<=n;i++){tk[i].a=B1.find(tk[i].a),tk[i].b=B2.find(tk[i].b);tk[i].c=B1.find(tk[i].c),tk[i].d=B2.find(tk[i].d);
//		printf("[%lld~%lld,%lld~%lld]\n",tk[i].a,tk[i].c,tk[i].b,tk[i].d);Deco::modify(tk[i].a,tk[i].c,{tk[i].b,tk[i].d,i});}Deco::dfs();LL ans=0; for(int i=1;i<=n;i++) ans+=o[i];printf("%lld",ans+1);return 0;
}
http://www.gsyq.cn/news/22169.html

相关文章:

  • 详细介绍:macOS 下安装 zsh、zsh-syntax-highlighting、powerlevel9k、nerd-font
  • AWS | Linux 硬盘挂载综合教程 - 实践
  • FFmpeg 实现视频批量剪辑
  • SaltStack 集群安装指南
  • NCS 3.1.1 蓝牙如何设置 public 地址
  • C# Avalonia 16- Animation- BlurringButtons
  • 别再争了,“Prompt已死”是个伪命题
  • 2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选
  • 了解漏洞管理和补丁管理
  • 2025 年国内铝型材源头厂家最新推荐排行榜:聚焦优质企业核心优势,为下游企业精准采购提供专业参考
  • WPF应用绑定系统快捷键
  • 2025年篷布厂家最新推荐排行榜,多功能防水篷布、聚乙烯篷布、帐篷/汽车/宴会盖布、盖草布、泳池布、微喷水带、日用盖布、农林用篷布、重型机器用篷布公司精选
  • 2025年发电机组厂家最新权威推荐榜:柴油/燃气/船用/静音箱式/移动拖车/集装箱式,涵盖上柴/玉柴/潍柴/康明斯/沃尔沃/道依茨/帕金斯/MTU品牌
  • pbm 还原物理备份提示executable file not found in $PATH. stderr
  • 2025年精密磨床/CNC加工厂家最新权威推荐榜:涵盖车床/铣床/多轴/复合加工,铝/不锈钢/钛合金/模具钢/塑料件定制,专攻汽车/医疗/航空航天/机器人零件及注塑模具
  • 协作式调度(Cooperative Scheduling)详解
  • 有没有什么比较好用的拼图工具?
  • WxPython跨平台开发框架之主从表展示和录入的界面处理--产品报价单和明细记录的处理
  • 2025 年南昌装修公司推荐:南昌宿然设计 —— 无营销套路专注落地还原的技术型装修设计机构
  • 【运维自动化-标准运维】各类全局变量使用说明(下)
  • 10 16
  • MSSQL 恢复到时间点方法
  • 线性代数笔记
  • 2025 年浇注料生产厂家最新推荐榜单:聚焦实力企业,助力石化冶金新能源等行业精准选择优质供应商轻质/氧化铝空心球/耐火纤维浇注料厂家推荐
  • 谷歌推出全新语音搜索技术 S2R:跳过语音转文字,直接理解语音意图;代体 AI 推出端侧语音输入法丨日报
  • 数据跨境传输:挑战、需求与管控实践
  • 元推理框架,人类文明的逻辑正果
  • 2025 年广州心理咨询机构最新推荐榜权威发布,详解品牌实力优势与选择指南广州青少年心理咨询/广州情感心理咨询/广州婚姻情感心理咨询/广州催眠心理咨询机构推荐
  • 还在手动Code Review?给你的GitHub项目请一个免费的AI审查官吧!
  • 【光照】UnityURP[泛光Bloom]原理与实现