25 LCA模拟赛3T1 ROI 2012马赛克 题解

news/2025/10/16 15:08:26/文章来源:https://www.cnblogs.com/michaele/p/19145687

马赛克

题面

题解

这道题想了很久如何快速求出一个点最右边或者最左边的不相容点,但是没有什么思路。

我们将题目中给定的有序对抽象为 \((a,b)\)

最后 xpigeon 带神给出了一个结论,就是一段序列中只要出现了两个互不相同的 \(a\) ,并且出现了两个互不相同的 \(b\),那么就一定会不相容。

我们来证明一下:

对于两个数对的情况,显然不相容。

对于三个数对的情况,假设前两个相容,那么一定是形如 \((x,y), (x, *)\) 或者 \((x, y), (*, y)\),我们讨论第一个情况,第二种情况同理。

假设前两个完全相同,那么和两个数对的情况相同,所以我们只讨论前两个不同的情况。

前两个为 \((x, y), (x, q)\) 为了出现两个互不相同的 \(a\),第三个数对一定为 \((p, *)\) 其中 \(*\) 可能为 \(y\)\(q\) 或其他。

那么不管 \(*\) 取哪种情况,都会和前两个中的某一个不相容。

对于大于等于三个数对的情况,我们同样可以按照三个数对的情况推得。

有了这样一个结论,我们只需找到对于每个数对右边的第一个 \(a\) 与其不同的数对,以及第一个 \(b\) 与其不同的数对。

然后看这两个数对的位置是否都包含在我们的区间范围内即可。

时间复杂度 \(O(n)\)

code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <map>
#include <set>using namespace std;namespace michaele {const int N = 1e5 + 10;int n, m;pair <int, int> a[N];int ne1[N], ne2[N];void solve () {cin >> n;for (int i = 1; i <= n; i ++) {cin >> a[i].first >> a[i].second;}for (int i = n; i >= 1; i --) {if (a[i + 1].first != a[i].first) ne1[i] = i + 1;else ne1[i] = ne1[i + 1];if (a[i + 1].second != a[i].second) ne2[i] = i + 1;else ne2[i] = ne2[i + 1];}cin >> m;for (int i = 1; i <= m; i ++) {int l, r, x, y;cin >> l >> r;x = ne1[l], y = ne2[l];if (x > r || y > r) {cout << "0 0" << endl;} else if (a[l].second != a[x].second) {cout << l << ' ' << x << endl;} else if (a[l].first != a[y].first) {cout << l << ' ' << y << endl;} else {cout << x << ' ' << y << endl;}}}}int main () {michaele :: solve ();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验记录2025/10/14

我现在是把picsize从640变化到了960,而且把原先7000张的训练数据集精简成了3600张的数据集 下面是跑出来的结果: Validating runs/detect/yolo11-tea-yolo11s36/weights/best.pt... Ultralytics 8.3.182 🚀 Python…

个人微信开发框架

个人微信开发框架、微信二次开发api、个人微信开发api接口,微信个人号开发API WTAPI开放平台是基于微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱…

投资指标技术分析

投资指标技术分析指数平滑移动平均线(MACD) 移动平均线收敛差异(MACD)是一种振荡类型的指标,该指标被交易者广泛用于技术分析(TA)中。MACD是一种趋势跟踪工具,利用移动平均线来确定股票、加密货币或其他可交易…

linux源码编译python

1. 下载python源码 python官网(https://www.python.org/)下载源码包 例如python3.8: Index of /ftp/python/3.8.9/ 2. 安装依赖yum install -y zlib zlib-devel sqlite-devel libffi-devel gcc openssl-devel libff…

uni-app x开发商城系统,Swiper 轮播图

一、概述 该组件一般用于导航轮播,广告展示等场景,可开箱即用,具有如下特点:自定义指示器模式,可配置指示器样式 3D轮播图效果,满足不同的开发需求 可配置显示标题,涵盖不同的应用场景 具有设置加载状态和嵌入视…

昂瑞微OM6651A:国产车规级蓝牙芯片的破局者

OM6651A——第二颗车规级低功耗蓝牙芯片,成功通过涵盖机械应力、温湿度循环等7大类共41项极限测试,斩获赛宝实验室颁发的AEC Q-100 Grade1认证(-40~125℃)。这颗采用3x2.7x0.5mm极薄LGA封装的芯片,以超低功耗与越…

2025年中央空调/锅炉房/机房运维服务厂家最新权威推荐榜:专业托管与维修外包一体化解决方案精选

2025年中央空调/锅炉房/机房运维服务厂家最新权威推荐榜:专业托管与维修外包一体化解决方案精选随着我国工业化和城市化进程的加速推进,暖通空调及动力设备运维服务行业迎来了前所未有的发展机遇。作为建筑能源系统的…

【终极解决方案】api-ms-win-core-path-l1-1-0.dll 缺失?Win7/Win10/Win11完整修复教程

许多用户在运行游戏、设计软件或系统程序时,遇到“api-ms-win-core-path-l1-1-0.dll 缺失”错误提示。本文详细解析该 DLL 文件的作用、报错原因,并提供三种高效修复方案:一键DLL修复工具、手动注册方法以及 Win7 专…

2025 年最新推荐分切机实力厂家权威榜单:覆盖全自动高速、铝箔、薄膜、高精度等机型,为软包装企业精选优质设备

随着软包装行业不断升级,分切机作为核心生产设备,其品质与性能直接关系到企业的生产效率、产品质量及市场竞争力。当前市场上,分切机厂家数量繁杂,部分厂家设备存在精度不足、材料适配性差、售后服务缺失等问题,导…

打破应用跳转流失困局,提升推广链接转化率

在移动互联网生态中,应用是用户高频使用的核心入口,而跳转应用是连接用户需求与服务落地的核心桥梁,能够提升用户活跃度与留存。传统流程需先跳转网页再手动引导至应用市场,多一步操作导致流失率增加,尤其影响广告…

《Vue3 + Vite + Pinia 实现后台管理系统:路由权限控制与动态菜单渲染》

《Vue3 + Vite + Pinia 实现后台管理系统:路由权限控制与动态菜单渲染》从零构建 Vue3 后台管理项目,包括 Vite 项目初始化、Pinia 状态管理(用户信息 / 权限存储)、基于角色的路由权限控制(router.beforeEach 拦…

检查cpu是否支撑minio方法

#!/bin/sh flags=$(cat /proc/cpuinfo | grep flags | head -n 1 | cut -d: -f2) supports_v2=awk "/cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/ {found=1}…

性能测试进阶秘籍:如何用JMeter分布式压测挖掘系统极限潜

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 "我们的系统明明配置很高,为什么单机压测TPS死活上不去?"这是无数工程师在性能测试中遇到的共同困惑。最近在一次真实项目基准…

Codeforces Round 1058 (Div. 2) A~E

A - MEX Partition 思维? 求 \(a\) 的 \(\text{mex}\)。 关于证明,参考官方题解:首先,让 \(m=\operatorname{mex}(A)\) 。我们可以忽略所有大于 \(m\) 的元素。这是因为由于 \(m\) 是 mex, \(m\) 不会出现在 \(A\…

2025 年生料带厂家最新推荐排行榜:解析优质品牌优势,涵盖新型、彩色、液态等多类型生料带厂家企业推荐

在螺纹密封领域,生料带的质量与性能对家庭生活、工业生产的安全稳定至关重要。当前市场上,部分生料带密封性能差,导致家庭水管、燃气管道漏水漏气,引发资源浪费与安全隐患;工业场景中,许多产品耐温、耐腐蚀性不足…

openresty开发lua-resty-openssl之对称加密解密 - liuxm

openresty开发lua-resty-openssl之对称加密解密local cipher = require "resty.openssl.cipher" local rand = require "resty.openssl.rand" local pkey = require "resty.openssl.pkey&quo…

腾讯云 OpenCloudOS 8 docker安装

腾讯云 OpenCloudOS 8 docker安装腾讯云 OpenCloudOS 8 docker安装 1:更新系统sudo yum update -y2:安装依赖包sudo yum install -y yum-utils device-mapper-persisten-data lvm23:添加docker官方仓库sudo yum-confi…

哈希乱搞:CF1418G Three Occurrences

这道题看起来并不是那么好做,看到题解神秘做法,记录下来。 考虑枚举右端点,统计符合条件的左端点数量。 发现 3 这个数字很小,发现区间中的数我们仅仅需要知道它 %3 的值。 我们如果可以记录一个位置前缀中所有值的…

2025 年废旧轮胎裂解加热生产厂家最新推荐榜单:优质企业专利技术、产能规模与口碑实力全景解析锂化工焚烧炉/氟化热风系统/煤化工热风炉厂家推荐

随着环保政策趋严与资源循环利用需求激增,废旧轮胎回收利用行业进入高速发展期,而裂解加热作为核心工序,其设备质量直接决定生产效率、环保达标情况与企业成本控制。当前市场上,废旧轮胎裂解加热设备厂家数量众多,…

悲伤 自卑 乖戾 独自哭泣 陪伴空虚 kill my memory 让我将痛苦全忘记

test21 摩尔县mex 首先 \(\text{mex} \{a_{l,\dots,r}\}\neq k\) 的条件是 \(\exists i\in [l,r],a_i=k\) 或者 \(\exists v\in [0,k),\forall a_i\neq v\)。所以我们修改的办法有两种, \((a_i<k)\to k\) 阻隔跨越…