2024.11.5总结

news/2024/12/27 13:18:15/文章来源:https://www.cnblogs.com/Mitishirube0717/p/18528407

A:

题目可变为:从一个点 \(x\) 走到左侧或右侧第一个 \(\geq y(y \leq x)\) 的位置需要花费 \(l_{x}\)\(r_{x}\) 的代价,多次查询最短路。

首先观察一个点 \(x\) 只往 \(a\) 值高于自己的位置走能走到哪些点。

找到左侧从 \(x\) 出发的后缀 \(\max\) ,右侧从 \(x\) 出发的前缀 \(\max\) ,显然可以在这些位置之间左右横跳,并且由于 \(l_{i}\) 单增, \(r_{i}\) 单减的性质,如果想要走到这些点,一定不会在其中一步不往上走;同理如果想从这些点往 \(x\) 走,也不会在其中一步不往下走。

先假设 \(a\) 是一个排列,然后我们构造一棵 \(\mathcal O(n)\) 个点的树,对于一个点 \(x\) ,找到右侧第一个 \(x^{\prime}\) 满足 \(a_{x^{\prime}}>a_{x}\) (左侧同理),把这个 pair 看做一个点,将它的父亲设为 \(x\) 往左(右)走一步与 \(x^{\prime}\) 构成的 pair 对应的点。

这样,对于一个 \(\left(x, x^{\prime}\right)\) 的点,如果已知到 \(x\) 的最短路径长度与到 \(x^{\prime}\) 的最短路径长度,其到它的父亲对应的最短路径长度即为乘上一个 \(2 \times 2\) 的矩阵( \((\max ,+)\) 乘法),倍增一下即能快速算出儿子到祖先的最短路(祖先到儿子同理)。

对于一名旅客,设起点为 \(s\) ,终点为 \(t\) ,不妨设 \(s<t\) ,设中间 \(a\) 的最大值为 \(a_{p}\) 。最短路一定是 \(s \rightarrow p \rightarrow t\) 或者 \(s\) 走到 \(s\) 左侧第一个 \(>a_{p}\) 的点再走到 \(t\) 右侧第一个 \(>a_{p}\) 的点再走到 \(t\) ,这两种情况中间过程均可表示为树上的祖先与儿子之间的最短路,直接倍增求值即可。

一道只需要倍增的数据结构题。

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

B:

不太懂放这么个打表题想表达什么。

C:

初始矩阵:

\[E= \left[ \begin{matrix} 0&0&1 \end{matrix} \right] \]

加入一个 \(t\)

\[T= \left[ \begin{matrix} 1&0&0\\ 0&0&-1\\ 0&1&2\\ \end{matrix} \right] \]

加入一个 \(d\)

\[D= \left[ \begin{matrix} 0&0&-1\\ 0&1&0\\ 1&0&2\\ \end{matrix} \right] \]

\(X=T\times D\),每次转移就是 \(X\leftarrow X\times X\times T\)

预处理前 \(10^6\) 个转移矩阵即可获得 51pts。

注意到

对于 \(n>799039878\) 时答案为 \(2^{n-799039878}\),剩下的分块打表即可。

不太懂是怎么注意到的。

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

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

相关文章

设计模式速览

设计模式速览前言:资料来源吉大设计模式课程,自用 只提取应试回忆关键部分,省略优缺点说明,详细应用之类,扩展挑了常出现的1. 概述 1.1 类间关系 1.1.1 依赖(dependency): ​ 一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化…

try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗

finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。下面提供了一段示例代码和运行结果。问题的核心在于当​​catch​​​块中有​​return​​​语句时,​​finally​​块是否还会被执行。 示例代码解析public …

Synchronized用过吗,其原理是什么

synchronized 是由一对 monitorenter/monitorexit 指令实现的,monitor 对象是同步的基本实现单元。在 Java 6 之前,monitor 的实现完全是依靠操作系统内部的互斥锁,因为需要进行用户态到内核态的切换,所以同步操作是一个无差别的重量级操作,性能也很低。但在 Java 6 的时候…

算法与数据结构——基数排序

基数排序 基数排序(radix sort)的核心思想与计数排序一致,也通过统计个数来实现排序。计数排序适用于数据量n较大但数据范围m比较小的情况。假设我们需要对n=106个学号进行排序,而学号是一个8位数字,这意味着数据范围m=108非常大,使用计数排序需要分配大量内存空间,而基…

第二届全国高校软件测试开发教育峰会在韩山师范学院隆重举办!

10月26日-27日,由测试开发校企联合培养联盟主办、韩山师范学院承办、测吧(北京)科技有限公司及<火焰杯>软件测试开发大赛组委会协办的第二届全国高校软件测试开发教育峰会在韩山师范学院隆重举行。本次峰会汇聚了来自全国各大高校的教师及企业嘉宾,旨在共同探讨软件测…

如何使用nssm将asp.net core/.net6/.net8的webapi项目、mvc项目、控制台项目等注册为windows服务

nssm工具可以将asp.net Framework、asp.net core、net6、.net8的webapi项目、mvc项目、控制台项目、winform项、WPF项目等注册为windows服务。 nssm可以将所有windows可执行文件注册为windows服务。 下面,使用nssm将asp.net8的webapi项目注册为windows服务为例:【第一步】开发…

转 分布式执行计划

###sample 1 https://open.oceanbase.com/blog/1100217?_gl=1*10gldye*_ga*Mjc3Nzg0NTIwLjE3MzA3ODg3NDI.*_ga_T35KTM57DZ*MTczMDc5NDE2Ny4yLjEuMTczMDc5NTk5NC42MC4wLjA.本文介绍 OceanBase 的 SQL 执行类型。分布式数据库下数据分布在各个节点,SQL 很有可能会跨节点取数据。…

中公网校视频课件课程下载工具,如何在电脑端下载中公网校视频课件资料到本地?

一. 安装中公网校课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/eoffcn_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止…

后端整合 Swagger + Knife4j 接口文档

后端整合 Swagger + Knife4j 接口文档什么是接口文档?写接口信息的文档,每条接口包括:请求参数 响应参数错误码接口地址 接口名称 请求类型 请求格式 备注who 谁用?一般是后端或者负责人来提供,后端和前端都要使用 为什么需要接口文档?有个书面内容(背书或者归档),便于…

start-all.sh脚本启动Hadoop的NameNode、DataNode、ResourceManager和NodeManager失败

今天在做大数据实验时,在终端,start-all.sh脚本启动Hadoop的NameNode、DataNode、ResourceManager和NodeManager失败,出现下面的错误信息: [root@node1 hadoop]# ./sbin/start-all.shStarting namenodes on [node1]ERROR: Attempting to operate on hdfs namenode as rootE…

Dash 2.18.2版本更新:模式匹配回调性能大提升

本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffery/dash-master大家好我是费老师,今天Dash发布了2.18.2版本更新,虽然只是一次小版本更新,但其中涉及到的一些内容还是非常重要的,今天的文章中…