【4.5】

多重映射

典题,多次整体修改,把所有的 a i = x a_i=x ai=x 改成 a i = y a_i=y ai=y 。时间逆序。

朴素区间 DP 时间是 O ( n 3 ) O(n^3) O(n3) 的,考虑如何枚举以达到优化。

优化思路类似于【智乃想考一道完全背包】。

外向树

较好的题。易得结论:每次将 [ q l , q r ] [ql, qr] [ql,qr] 规定为特殊点,问 [ q l , q r ] [ql, qr] [ql,qr] 中有多少个点的子树里没有特殊点。

分为两个子问题:

  1. 求得每个点 i i i 的子树内大于 i i i 的最小编号和小于 i i i 的最大编号,组成区间 s i s_i si
  2. [ q l , q r ] [ql, qr] [ql,qr] 内有多少个 i ∈ [ q l , q r ] i\in[ql, qr] i[ql,qr] 满足 [ q l , q r ] ⊂ s i [ql, qr]\subset s_i [ql,qr]si

对于一(不完全):

  1. 启发式合并, O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n)
  2. dfs 序上主席树区间查询, O ( n log ⁡ n ) O(n\log n) O(nlogn)
  3. max 线段树单点修改区间查询。从小到大枚举编号 i i i ,使得前缀 [ 1 , i ) [1, i) [1,i) 的点在dfs序上添加到线段树内,并区间查询最大值。时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)

对于二(不完全):

对每个查询区间,问有多少个节点区间满足 u l ≤ q l ≤ u ≤ q r ≤ u r ul\leq ql\leq u\leq qr\leq ur ulqluqrur

  1. cdq 分治,转化为离线三维偏序问题,时间复杂度 O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n)
  2. 容斥,等于 ∣ u l ≤ q l ≤ q r ≤ u r ∣ − ∣ u l ≤ u ≤ q l ∣ − ∣ q r ≤ u ≤ u r ∣ |ul\leq ql \leq qr\leq ur|-|ul\leq u\leq ql|-|qr\leq u\leq ur| ulqlqruruluqlqruur ,二维数点(二位偏序)解决,时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)

1+3解法:

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68612445

小红的元素交换

不考虑元素限制,相当于置换环上的交换。对于一个环 l l l ,选择两个点进行交换(等价于数组上对应位置的元素交换),则拆分为两个环 l 1 , l 2 ( l 1 + l 2 = l ) l1, l2(l1+l2=l) l1,l2(l1+l2=l) 。环长和不变,但是环数变多。

对于此题,相当于只能 01 元素才能交换。对于 01 环可以单独解决,对于 0 环和 1 环可以配对解决。

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68610245

小红的数组操作

此题关键是末端铺平,并利用 栈大小每次最多增大 1 来保证时间复杂度的线性。

题解:kjhhjki的博客

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68618210

小苯的逆序对

这题的 trick 也比较典型:容斥原理求最大公约数为 k 的数对个数

大致思路就是,定义 b i b_i bi 表示 i i i 的倍数,对于 i i i 的倍数两两配对进行 g c d gcd gcd 运算的结果一定还是 i i i 的倍数。定义 f i f_i fi 表示 g c d ( a x , a y ) = i gcd(a_x, a_y)=i gcd(ax,ay)=i 的对数,可以知道 ∑ k = 1 i × k ≤ n f k × i = C b i 2 \sum_{k=1}^{i\times k \leq n} f_{k\times i}=C_{b_i}^2 k=1i×knfk×i=Cbi2 。容斥一下即可。

类似的题目:D. Counting Rhyme

小苯的逆序对

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=68619463

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

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

相关文章

mysql 通配符与模式匹配用法详解

一、通配符 什么是通配符? 通配符用于替换字符串中的一个或多个字符。 通配符通常与LIKE、NOT LIKE操作符一起使用。LIKE操作符在WHERE子句中用于搜索列中的指定模式。 Mysql 有哪些通配符? % :百分号通配符,表示匹配0个或多个…

TXT文本高效编辑神器,教你进行隔行删除不需要的内容,轻松整理文本内容。

在信息爆炸的时代,我们每天都会接触到大量的文本信息,无论是工作中的报告、邮件,还是生活中的读书笔记、备忘录,都需要我们对文本进行高效的管理和编辑。然而,传统的文本编辑方式往往繁琐低效,无法满足我们…

PTA L2-048 寻宝图

给定一幅地图,其中有水域,有陆地。被水域完全环绕的陆地是岛屿。有些岛屿上埋藏有宝藏,这些有宝藏的点也被标记出来了。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。 输入格式&#xf…

程序员35岁现象:年龄与职业发展的辩证关系

程序员35岁现象:年龄与职业发展的辩证关系 引言 近年来,关于程序员职业发展的“35岁现象”引发了业界内外的广泛关注。人们普遍认为35岁是一道程序员生涯的分水岭,一部分人担忧随着年龄增长,技术更新速度快,资深程序员…

LeetCode练习题--567.字符串的排列

今天讲一个非常经典的滑动窗口的问题 这道题的意思很明显: 给你两个字符串s1与s2,判断s2中是否存在一个子串:它包含s1中所有字符且不包含其他字符 让我们先来写一下滑动窗口的模板: /*** 滑动窗口模板 * param s1 * param s2 */public static void model (String s1, String s2…

包装类知识总结

包装类的使用1. 为什么要使用包装类? 为了使得基本数据类型的变量具备引用数据类型变量的相关特征(比如:封装性、继承性、多态性),我们给各个基本数据 类型的变量都提供了对应的包装类。 为了让基本数据类型也可以有引…

51单片机入门:认识开发板

认识开发板 板载资源: 数码管模块 说明: 2个四位一体共阴数码管 详细: 2个四位一体:两个独立的四位数码管,每个四位数码管都是“一体”的设计,也就是说,每个数码管内部集成了四个独立的七段LE…

HTTPS跟HTTP有区别吗?

HTTPS和HTTP的区别,白话一点说就是: 1. 安全程度: - HTTP:就像是你和朋友面对面聊天,说的话大家都能听见(信息明文传输,容易被偷听)。 - HTTPS:就像是你们俩戴着加密耳机…

回文串问题

1、回文子串 647. 回文子串 - 力扣(LeetCode) class Solution {//1、状态表示:// dp[i][j]:s字符串种从i位置到j位置的子串,是否是回文串//2、状态转移方程://if s[i] != s[j],false//如果s[i] == s[j]:(1)i == j,true;(2) i+1 == j相邻,true;(3)如果不是前面两种关…

论大数据服务化发展史

引言 一直想写一篇服务化相关的文章,那就别犹豫了现在就开始吧 正文 作为大数据基础架构工程师,业界也笑称“运维Boy”,日常工作就是在各个机器上部署以及维护服务,例如部署Hadoop、Kafka、Pulsar这些等等,用于给公…

InternLM2-lesson2笔记

书生浦语大模型趣味 Demo 视频连接:https://www.bilibili.com/video/BV1AH4y1H78d/?vd_source902e3124d4683c41b103f1d1322401fa 目录 书生浦语大模型趣味 Demo课程总览SIG项目Demo部署的一般流程存在的问题总结 课程总览 InternLM2-chat-1.8B部署八戒-chat-1.8B…

【css】文本过长溢出一行不换行普通css以及antd实现

.text-box { white-space: nowrap; /* 防止文字换行 */ overflow: hidden; /* 隐藏超出div的内容 */ text-overflow: ellipsis; /* 当内容超出时,显示省略号 */ max-width: calc(100% - 80px); /* 假设按钮宽度为80px,则设置div的最大宽度为容器宽度…

【华为OD机试】根据IP查找城市(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

Nginx配置使用笔记

Nginx配置使用笔记 前言 官网下载压缩包https://nginx.org/ 解压完成后当前目录cmd输入nginx指令启动 访问http://localhost:80确认启动成功 1.部署前端项目 部署前端项目到路径E:\Workspaces\Vscode\app-web 2.0配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹l…

Mysql索引总结(1)

文章目录 InnoDB索引与MyISAM索引实现的区别是什么?一个表中如果没有创建索引,那么还会创建B树吗?B树索引实现原理(数据结构) InnoDB索引与MyISAM索引实现的区别是什么? MyISAM的索引方式都是非聚簇的&…

07-app端文章搜索

app端文章搜索 1) 今日内容介绍 1.1)App端搜索-效果图 1.2)今日内容 文章搜索 ElasticSearch环境搭建 索引库创建 文章搜索多条件复合查询 索引数据同步 搜索历史记录 Mongodb环境搭建 异步保存搜索历史 查看搜索历史列表 删除搜索历史 联想词查询 联想词的来源 联…

elasticSearch原理浅尝

终于等到你 马上就要放弃 开个玩笑 ,进入正题 on fire 基础的咱不说了,一搜一麻袋 读 全文检索: 协调节点广播查询请求到相关分片 并 将其响应 整合 全局排序 返回结果集合 带路由:具体文档 shard hash(document_id) % (…

redis进阶入门主从复制与哨兵集群

一、主从复制 1.1背景 一般来说,要将 Redis用于工程项目中,只使用一台 Redist是万万不能的,原因如下: 从结构上,单个 Redist服务器会发生单点故障,井且一台服务器需要处理所有的请求负載,压力…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言:在学习前端基础时,必不可少的就是三大件(html、css、javascript ),而HTML(超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦,它定义了网页内容的含义和…

P1570 KC 喝咖啡

P1570 KC 喝咖啡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 让求 ∑ v i ∑ c i \frac { \sum{ v_i}} { \sum{c_i}} ∑ci​∑vi​​的最大值,假设值为 a n s ans ans,则 a n s ∑ v i ∑ c i ans \frac {\sum{v_i}} {\sum{c_i}} ans∑ci​∑vi​…