偏序关系用分治优化建图:ARC165F
https://atcoder.jp/contests/arc165/tasks/arc165_f
首先可以建图,然后变成求字典序最小的的拓扑排序
然后发现这样复杂度会炸,观察连边的条件是什么:
- l i < l j l_i<l_j li<lj
- r i < r j r_i<r_j ri<rj
这是个二维偏序问题,我们考虑用分治来解决
我们按 l l l 排序,本区间内再按 r r r 排序:

复杂度 O ( n log 2 n ) O(n\log^2n) O(nlog2n)
#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL#define debug(...) fprintf(stdout, ##__VA_ARGS__)
#else#define debug(...) void(0)
#endif
//#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
#define fi first
#define se second
//srand(time(0));
#define N 5000010
//#define M
//#define mo
struct node {int l, r, id, op;
}a[N];
int n, m, i, j, k, T;
struct cmp {bool operator () (int x, int y) const {if(x<=n && y>n) return 1; if(y<=n && x>n) return 0; if(x<=n && y<=n) return x>y; if(x>n && y>n) return x>y; }
};
priority_queue<int, vector<int>, cmp >q;
int c[N], b[N], tot;
vector<int>G[N]; void cun(int x, int y) {
// debug("%d -> %d\n", x, y); G[x].pb(y); ++c[y];
}void solve(int l, int r) {int i; if(l==r) return ; int mid=(l+r)>>1; solve(l, mid); solve(mid+1, r); for(i=l; i<=mid; ++i) a[i].op=0; for(i=mid+1; i<=r; ++i) a[i].op=1; sort(a+l, a+r+1, [&] (node x, node y) { return x.r<y.r; }); for(i=l; i<=r; ++i) b[i]=++tot; for(i=l; i<=r-1; ++i) cun(b[i], b[i]+1); for(i=l; i<=r; ++i) if(a[i].op==0) cun(a[i].id, b[i]); else cun(b[i], a[i].id);
}signed main()
{#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endif
// T=read();
// while(T--) {
//
// }n=read(); tot=n; for(i=1; i<=n; ++i) a[i].id=i; for(i=1; i<=2*n; ++i) {k=read(); if(!a[k].l) a[k].l=i; else a[k].r=i; }sort(a+1, a+n+1, [] (node x, node y) { return x.l<y.l; }); solve(1, n); for(i=1; i<=tot; ++i) if(!c[i]) q.push(i); while(!q.empty()) {auto u=q.top(); q.pop();
// debug("# %d\n", u); if(u<=n) printf("%d %d ", u, u); for(auto v : G[u]) if(--c[v]==0) q.push(v); }return 0;
}相关文章:
偏序关系用分治优化建图:ARC165F
https://atcoder.jp/contests/arc165/tasks/arc165_f 首先可以建图,然后变成求字典序最小的的拓扑排序 然后发现这样复杂度会炸,观察连边的条件是什么: l i < l j l_i<l_j li<lj r i < r j r_i<r_j ri<rj 这是个…...
StripedFly恶意软件:悄无声息运行5年,感染百万设备
导语:最近,俄罗斯网络安全公司Kaspersky发布的一项调查显示,一种名为StripedFly的高级恶意软件伪装成加密货币挖矿程序,悄无声息地在全球范围内运行了超过5年,感染了100万台设备。这是一种复杂的模块化框架,…...
Flink SQL DataGen Connector 示例
Flink SQL DataGen Connector 示例 1、概述 使用 Flink SQL DataGen Connector,可以快速地生成符合规则的测试数据,可以在不依赖真实数据的情况下进行开发和测试。 2、使用示例 创建一个名为 “users” 的表,包含 6 个字段:id…...
【监控指标】监控系统-prometheus、grafana。容器化部署。go语言 gin框架、gRPC框架的集成
文章目录 一、监控有哪些指标二、prometheus、grafana架构Prometheus 组件Grafana 组件架构优点 三、安装prometheus和node-exporter1. docker pull镜像2. 启动node-exporter3. 启动prometheus 四、promql基本语法五、grafana的安装和使用1. 新建空文件夹grafana-storage&#…...
时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解
时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 PSO-VMD粒子群算法PSO优化VMD变分模态分解 可直接运行 分解效果…...
leetcode 684. 冗余连接
树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] …...
yolov8模型训练、目标跟踪
一、准备条件 1.下载yolov8 https://github.com/ultralytics/ultralytics2.安装python https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe3.安装依赖 进入ultralytics-main,执行: pip install -r requirements.txt pip install -U ul…...
Flink SQL Regular Join 、Interval Join、Temporal Join、Lookup Join 详解
Flink ⽀持⾮常多的数据 Join ⽅式,主要包括以下三种: 动态表(流)与动态表(流)的 Join动态表(流)与外部维表(⽐如 Redis)的 Join动态表字段的列转⾏…...
如何在搜索引擎中应用AI大语言模型,提高企业生产力?
人工智能尤其是大型语言模型的应用,重塑了我们与信息交互的方式,也为企业带来了重大的变革。将基于大模型的检索增强生成(RAG)集成到业务实践中,不仅是一种趋势,更是一种必要。它有助于实现数据驱动型决策&…...
实验七 组合器模式的应用
实验目的 1)掌握组合器模式(composite)的特点 2 分析具体问题,使用组合器模式进行设计。 实验内容和要求 在例3.3的设计中,添加一个空军大队( Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirU…...
Springboot实现人脸识别与WebSocket长连接的实现
0.什么是WebSocket,由于普通的请求是间断式发送的,如果要同一时间发生大量的请求,必然导致响应速度慢(因为根据tcp协议要经过三层握手,如果不持续发送,就会导致n多次握手,关闭连接,打开连接) 1.业务需求: 由于我需要使用java来处理视频的问题,视频其实就是图片,相当于每张图片…...
智能安全帽功能-EIS智能防抖摄像头4G定位视频语音气体检测
智能安全帽是一种集成多种智能功能的产品,例如实时定位、语音对讲、健康监测和AI智能预警等。这些丰富的功能能够更好地帮助工人开展工作,并提升安全保障水平。智能安全帽在各个行业中的应用越来越广泛。尤其在工程建设领域,项目管理和工作安…...
TEMU跨境平台珠宝首饰RSL报告如何办理?
首饰或者产品TEMU拼多多跨境平台要求的RSL报告如何办理? 珠宝首饰上架前必须进行RSL Report(欧盟禁限用化学物质检测报告) 随着人们对珠宝首饰的要求越来越高,为了确保珠宝首饰的安全性,欧盟REACH法规规定,…...
51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+原理图+PCB+设计报告+讲解视频)
51单片机的篮球计分器液晶LCD1602显示 📑1.主要功能:📑讲解视频:📑2.仿真📑3. 程序代码📑4. 原理图📑5. PCB图📑6. 设计报告📑7. 设计资料内容清单&&…...
【NI-DAQmx入门】NI-DAQmx之Python
NI-DAQmx Python GitHub资源: NI-DAQmx Python 文档说明:NI-DAQmx Python Documentation — NI-DAQmx Python API 0.9 documentation nidaqmx支持 CPython 3.7和 PyPy3,需要注意的是多支持USB DAQ和PCI DAQ,cDAQ需要指定…...
YoloV8目标检测与实例分割——目标检测onnx模型推理
一、模型转换 1.onnxruntime ONNX Runtime(ONNX Runtime或ORT)是一个开源的高性能推理引擎,用于部署和运行机器学习模型。它的设计目标是优化执行使用Open Neural Network Exchange(ONNX)格式定义的模型,…...
pcigo图床插件的简单开发
1.前言: 如果想写一个图床并且投入使用,那么,接入picgo一定是一个不错的选择。picgo有着windows,mac,linux等多个客户端版本。实用且方便。 2. 开发的准备: 2.0. 需要安装一个node node这里我就不详细说…...
Find My手机保护壳|苹果Find My与手机保护壳结合,智能防丢,全球定位
随着科技水平的快速发展,科技美容这一行业做为新型产业新生而出。时尚IT品牌随着市场的多元化发展。针对手机品牌和功能的增加而呈多样化,将手机保护壳按质地分有PC壳,皮革 ,硅胶,布料,硬塑,皮套…...
encode和decode的区别
字节序列和字符串是Python中两种不同的数据类型,它们的主要区别在于表示和处理方式! 字节序列(Bytes): 字节序列是一种二进制数据类型,它由一系列字节组成。字节是计算机存储信息的基本单位,每…...
建设项目管理中的 5 大预算挑战
为建设项目管理制定可靠、准确的预算是一项艰巨的任务,对于中小型建筑企业来说尤其如此。预算必须精确,同时还要考虑到每项工作的独特性和复杂性。 一项建筑行业相关调查统计了参与施工预算流程的人员所面临的最大挑战,分别是时间、预算、不…...
不止于上传预览:在若依框架中构建一个轻量级企业文档管理模块
若依框架下的企业级文档中心设计与实战 在数字化转型浪潮中,企业文档管理正从简单的文件存储向智能化协作平台演进。基于若依微服务框架构建文档中心模块,不仅能满足基础的PDF上传预览需求,更能为企业提供版本控制、权限管理、全文检索等进阶…...
告别锁相误差!基于DSOGI的正负序分离在Simulink中的建模与仿真全攻略
告别锁相误差!基于DSOGI的正负序分离在Simulink中的建模与仿真全攻略 电力电子系统的核心挑战之一,是如何在电网电压不平衡条件下实现精确的相位同步。去年参与某微电网项目时,我们团队曾因传统锁相环在电压跌落时产生的相位抖动损失了关键数…...
基于YOLOV8的车辆检测系统:快速上手与实用功能
基于YOLOV8的车辆检测系统 基于深度学习的车辆检测系统有数据集 模型已经训练好 直接用即可 报告 30r 就是售价 包搭配环境 远程运行跑通程序 本项目已经训练好模型,配置好环境可直接使用,运行效果见图像(可找我要演示视频) 项…...
NHPZ-10A/10B/10C 型平板式制动检验台全场景实战指南
全工况制动安全闭环:NHPZ-10A/10B/10C 型平板式制动检验台全场景实战指南在机动车安全性能检测体系中,平板式制动检验台是评估车辆制动系统可靠性的核心设备,其检测结果直接决定车辆能否安全上路。传统平板制动检测普遍存在工况模拟失真、数据…...
ai协作新范式:用快马平台ccswitch模型智能生成天气预报组件代码
今天想和大家分享一个有趣的AI辅助开发实践——用InsCode(快马)平台的ccswitch模型智能生成天气预报组件。整个过程就像有个懂编程的助手在实时配合,特别适合想快速实现功能又希望保持代码质量的场景。 理解ccswitch模型的调节作用 这个模型最实用的地方在于它能智能…...
Phi-4-mini-reasoning企业应用:替代传统规则引擎做逻辑校验服务
Phi-4-mini-reasoning企业应用:替代传统规则引擎做逻辑校验服务 1. 为什么企业需要逻辑校验服务 在现代企业系统中,逻辑校验无处不在。从电商平台的优惠券规则验证,到金融系统的风控审核,再到制造业的工艺流程检查,都…...
实战指南:利用快马平台为不同项目类型智能定制idea开发环境与工具链
今天想和大家分享一个实战经验:如何根据不同项目类型,快速定制专属的IDEA开发环境。作为开发者,我们经常需要切换不同技术栈,每次手动安装插件、配置SDK的过程实在太费时间。最近发现用InsCode(快马)平台可以智能解决这个问题&…...
新手必看:OWL ADVENTURE治愈系AI,手把手教你检测‘坏图片’
新手必看:OWL ADVENTURE治愈系AI,手把手教你检测坏图片 1. 为什么需要检测"坏图片"? 在数字世界中,图片不仅仅是美丽的风景或可爱的宠物照片。它们也可能成为网络威胁的载体。想象一下这些场景: 你收到一…...
别再只杀进程了!挖矿病毒XMRig的完整清除与溯源指南(附config.json钱包地址分析)
深度对抗XMRig挖矿病毒:从清除到溯源的实战手册 发现任务管理器里反复出现的xmrig.exe进程?别急着再次点击"结束任务"——这就像用创可贴处理骨折,治标不治本。作为处理过数百起挖矿事件的安全工程师,我总结了一套从内…...
win-acme证书自动续期架构深度解析:从故障排查到高可用部署
win-acme证书自动续期架构深度解析:从故障排查到高可用部署 【免费下载链接】win-acme Automate SSL/TLS certificates on Windows with ease 项目地址: https://gitcode.com/gh_mirrors/wi/win-acme 技术背景与挑战 在当今云原生和微服务架构盛行的时代&am…...
