可持久化线段树(主席树)【舰娘系列】【自编题】

2023-11-20

这里写图片描述
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=60083619
向大(hei)佬(e)势力学(di)习(tou)

前段时间做了一套大佬自己出的题(大佬竟然是个宅男2333),蒟蒻的我自然是只得了30分的暴力分:-(

fleet

舰队

【题目描述】
舰队里的每位舰娘都有一个编号i,也有一个类型ti,例如驱逐舰、轻巡洋
舰、航空母舰……
每次提督都想知道从第l 位舰娘到第r 位舰娘中(包含l、r),一共有多
少不同的类型。请你回答他的询问。
【输入格式】
第一行一个整数n,表示舰娘数量。
第二行n 个整数,第i 个整数ti 表示舰娘i 的类型。
第三行一个整数q,表示提督的询问数量。
接下来q 行,每行2 个整数l,r,表示询问[l,r]有多少不同类型的舰娘。
为了模拟真实情况,本题强制在线。你需要记录上一次的答案lastans(初
始值为0),每次询问真实的l,r 为l xor lastans 与r xor lastans,其中xor
表示按位异或操作。
【输出格式】
输出q 行,每行一个整数表示询问的答案。
【样例数据】
fleet.in
5
1 1 2 1 3
3
1 5
1 7
1 7
fleet.out
3
2
3
【数据范围】
对于30%的数据,n,q≤5000。
对于另30%的数据,ti≤100000。
对于100%的数据,1≤n,q≤200000,1≤l≤r≤n,1≤ti≤10^9。

正解当然不是我想出来的,而是另一个大佬自己yy出来的

我们建的线段树表示原序列中出现的不同的数的个数,就是对原序列建树,只不过对于节点i的线段树表示1~i区间出现的不同数的个数。
建树的时候需要记录这一个数上一次出现的位置,新建一棵树的时候既要加,又要减。
查询的时候利用前缀和区间查询即可
注意要离散化
然后就没更多的技巧了,但是将这一模型抽出来着实很厉害

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可持久化线段树(主席树)【舰娘系列】【自编题】 的相关文章

  • 【经验分享】h3c模拟器HCL安装问题集锦

    转载来源 经验分享 h3c模拟器HCL安装问题集锦 https mp weixin qq com s dzDO7WvnjPJF3M6LipGbaQ 问题一 HCL安装完成后启动失败 提示 当前系统用户名中包含非ASCII字符 解决方案 HC
  • flutterApp隐藏/显示状态栏和底部栏

    import package flutter services dart SystemChrome setEnabledSystemUIOverlays 隐藏状态栏 底部按钮栏 SystemChrome setEnabledSystemUI
  • ORACLE表的在线重定义

    一 在线表重定义的用处 1 修改表或者簇的存储参数 2 在相同schema的表空间之间 可以移动表或簇 注意 如果表的可以停止dml操作 则可以利用alter table move来进行表空间的更改 3 增加 修改或者删除一个或多个表或簇的
  • leetcode-712. 两个字符串的最小ASCII删除和

    712 两个字符串的最小ASCII删除和 题目 给定两个字符串s1 和 s2 返回使两个字符串相等所需删除字符的 ASCII 值的最小和 示例1 输入 s1 sea s2 eat 输出 231 解释 在 sea 中删除 s 并将 s 的值

随机推荐

  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • Linux云计算-05_Linux软件包管理

    本章介绍Linux系统软件的安装 卸载 配置 维护以及如何构建企业本地YUM光盘源及HTTP本地源 1 RPM软件包管理 Linux软件包管理大致可分为二进制包 源码包 使用的工具也各不相同 Linux常见软件包分为两种 分别是源代码包 S
  • C++ pthread cond_wait 和 cond_broadcast的使用

    一个简单的实例程序 说明pthread cond wait 和 pthread cond broadcast 的使用方式 函数定义 int pthread cond wait pthread cond t cond pthread mute
  • Coding and Paper Letter(六十一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 资源整理 1 Coding 1 航拍影像的土地覆盖分类 CAS机器学习人工智能2019 ZHAW 中ML DL分配的仓库 ml dl assignment 2019 2 跨
  • 职场新人如何使用ChatGPT提高工作效率

    刚刚从象牙塔中毕业 走向社会战场 作为职场新人的同学们刚刚进入公司和部门 难免会被安排做些本职工作之外的事务工作 被上级安排做些零零碎碎的小东西 俗称打杂 这些工作说难不难 想要做漂亮也并不简单 想要不辜负领导的信任 把这些工作做好 很容易
  • BP学习算法-构建三层神经网络

    引 人工神经网络 Artificial Neural Networks 简写为ANNs 也简称为神经网络 NNs 或称作连接模型 Connection Model 是一种模仿动物神经网络行为特征 进行分布式并行信息处理的算法数学模型 这种网
  • MySql学习笔记:一文上手MySql

    MySql学习笔记 quad PS 本文整理的笔记来自于B站视频 老杜带你学 mysql入门基础 mysql基础视频 数据库实战 视频讲的很好 值得大家一看 quad 一 MySql安装及概述 1 1 MySQL安装 MySql安装包下载链
  • 分层聚类算法

    分层聚类算法 转载 看到很多地方都讲到分层聚类法 这到底是什么东东 今天来研究一下 分层聚类法是聚类算法的一种 聚类算法是数据挖掘的核心技术 把数据库中的对象分类是数据挖掘的基本操作 其准则是使属于同一类的个体间距离尽可能小 而不同类个体间
  • 计算机网络4--Internet结构

    本页内容 1 基本结构 2 结构图解 3 层次结构图解 1 基本结构 a 端系统通过接入ISP access ISPs 连接到Internet b 接入ISP必须进一步互连 保证任意两个主机可以互相发送分组 c 构成复杂的网络互连的网络 2
  • Java对象数组的定义与用法

    目录 一 什么是对象数组 二 对象数组的作用 三 对象数组的语法定义 四 对象数组案例 一 什么是对象数组 1 顾名思义就是当数组元素是类对象时 这样的数组称之为对象数组 在这种情况下 数组的每一个元素都是一个对象的引用 2 对象数组 就是
  • Spring注解开发

    Spring配置繁重 注解提高开发速度 在applicationContext xml中配置组件扫描 作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类 字段和方法
  • PCL 法向量精细化处理

    目录 一 算法原理 1 概述 2 参考文献 二 代码实现 三 结果展示 一 算法原理 1 概述 class pcl NormalRefinement lt NormalT gt 这个类通过迭代的方式将每个点的法向量更新为其邻域内所有法向量的
  • Jenkins exec command java -jar 无法启动的问题

    看了一下午 网上讲的各种办法 都没起作用 前提 得先了解的知识 Disable exec 禁止在目标机上执行命令 勾选后将会忽略在Job配置中 Exec command 选项中设置的命令 Jenkins的说明文档中的 The Disable
  • 华为手机媒体音量自动静音_华为媒体音量自动静音

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 检查是否有APP与媒体音量冲突 只要打开软件 手机媒体音量就自动关闭 建议卸载冲突软件 华为手机 隶属于华为消费者业务 作为华为三大核心业务之一 华为消费者业务始于2003
  • PAT 7 加法变乘法

    加法变乘法 我们都知道 1 2 3 49 1225现在要求你把其中两个不相邻的加号变成乘号 使得结果为2015比如 1 2 3 1011 12 2728 29 49 2015就是符合要求的答案 请你寻找另外一个可能的答案 并把位置靠前的那个
  • Vue的响应式原理与diff算法的理解

    前端面试中主技术栈是vue的小伙伴应该都知道 这道题会被经常问到 也是老生常谈的一些题 下面简单说一下这些题 一 什么是vue的响应式原理 答 1 首次数据加载的时候 比如我data里面有age name 通过Object definePr
  • scarpy 爬虫

    基本指令 全局指令 scrapy fetch 直接爬取某个网页 scrapy runspider 运行某个爬虫 并且这个爬虫可以不属于项目里 scrapy settings 设置 scrapy shell 进入交互模式 D gt scrap
  • 缺陷报告—缺陷的状态

    缺陷状态 new 新的状态 open 激活 打开 的缺陷 开发方承认的缺陷 fixed 修改完成的缺陷 待返测的缺陷 close 关闭的缺陷 结束的缺陷 可归档的缺陷 rejected 被拒绝的缺陷 开发方没承认的缺陷 reopen 重新激
  • 【uniapp小程序】—— APP项目云打包(安卓)

    前言 之前小程序系列文章写了配置页面和封装自定义组件 这次写一下开发完成我们的项目后 如何进行打包安装 本文主要讲述的是使用 uniapp打包安卓 正文 第一步 查看自己的项目的基础配置 第二步 选择打包项目 选中我们要打包的项目 方式一
  • 可持久化线段树(主席树)【舰娘系列】【自编题】

    pixiv https www pixiv net member illust php mode medium illust id 60083619 向大 hei 佬 e 势力学 di 习 tou 前段时间做了一套大佬自己出的题 大佬竟然是