多校 A 层冲刺 NOIP2024 模拟赛 04

news/2024/10/9 20:13:30

多校A层冲刺NOIP2024模拟赛04

T 02表示法

签到题

记得有一道普及题是没加高精的原吧...

将原数高精除变为二进制,然后记搜就好了。

T 子串的子串

签到题

注意到 \(n\) 很小支持 \(O(n^2)\) 的操作,可以直接预处理出所有 \(l,r\) 的个数,预处理方式可参考数颜色一题,对于相同的子串只记录随靠右的贡献。对于判断前驱可以 \(hash\) + \(unordered_map\) 由于串比较多,考虑聪明一点记录前驱,可以按长度分组做,这样每组最多有 \(O(n)\) 个子串 \(hash\) 冲突概率大大降低,常数也就变小了。

时间复杂度为 \(O(wn^2+q)\)

T 魔法咒语

trie树,计数题

首先用 trie 树对所有前后缀去重,直接正反插入一遍就好了。

现在考虑怎样拼接前后缀才能做到不重不漏,发现如果直接拼接会计重是因为一个前缀的后缀与一个后缀的前缀相等,导致拼接时结果相同结果的断点有多个,考虑枚举前缀,对于一个前缀在其 trie 树中所对应的结点,不将结点子树中已有字符的贡献加入,这样就保证了上述情况只会计算一次,但是会有一种情况会算漏,即刚好以子树中存在的字符为结尾,直接特判记录单个后缀字符即可,以及特判长度为 1 的串就行了。

时间复杂度为 \(O(w\sum |s|)\)\(w\) 为字符集大小 。

T 表达式

crt,线段树

首先看到有一些数据点的模数很小,从而产生以模数为值域,预处理出一段区间内这个值域内数从左到右依次计算这个区间最后的值,这个东西显然是具有结合律的,可以上线段树。

但是对于其他点来说时间复杂度直接爆炸了,每一次区间合并时间复杂度都是 \(O(P)\) 的。

注意到题目给出的模数并不是一个质数,考虑拆解模数,然后分别做上述相同的操作,最后 crt 合并就行了。前 3 个点依旧需要暴力。

时间复杂度为 \(O(Snlogn)\)\(S\) 为模数拆解后的和。

p

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

小白科普:AI 到底是什么,终于有人讲清楚了

本小册主要是针对 AI 初学者的小白用户,那么第一篇肯定就是给大家科普一下,到底什么是 AI 呢?本小册主要是针对 AI 初学者的小白用户,那么第一篇肯定就是给大家科普一下,到底什么是 AI 呢? AI 是“人工智能”的缩写,它听起来好像很复杂,但其实它就像一个超级聪明的机器…

实验1 现代C++编程初体验

1. 实验任务11 #include <iostream>2 #include <string>3 #include <vector>4 #include <algorithm>5 6 using namespace std;7 8 // 声明9 // 模板函数声明 10 template<typename T> 11 void output(const T& c); 12 13 // 普通函数声明 1…

关于C++中的异常概念理解

1. 基本概念 异常,即 exception,是C++中的基本概念之一,在某段程序发生无法继续正常执行的情况时,C++允许程序进行所谓抛出异常(有时也被称为吐出异常)的行为,这些被抛出的异常,会自动地从触发点开始向外传播,直到被捕获(有时也被称为吞下异常)或者程序终止。2. 语法…

基于FPGA的8PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR

1.算法仿真效果本系统在以前写过的8PSK调制解调系统的基础上,增加了高斯信道模块,误码率统计模块,可以验证不同SNR情况下的8PSK误码情况。VIVADO2019.2仿真结果如下(完整代码运行后无水印):设置SNR=30db其对应星座图:设置SNR=15db其对应星座图:设置SNR=10db其对应星座图…

java学习10.9

网上找的javaweb教程 Servlet+Mybatis+Thymeleaf的javaweb图书管理系统 实现用web界面对数据库的增删改查 前端页面css样式为现成的东西修改 项目架构整体页面

『模拟赛』多校A层冲刺NOIP2024模拟赛04

『模拟赛记录』多校A层冲刺NOIP2024模拟赛04Rank 赤石场。A. 02表示法 签。 若干天前在洛谷随到过,不过当时只看了眼讨论区就走了www 还好本来不是很难。 发现大体上是一个拆分二的幂的问题,从大到小枚举 2 的幂,判断有没有这个幂只用比较大小关系,然后再对指数做一个同样的…

实现一个烟花效果

1. 首先创建一个烟花类,有烟花上升的效果,烟花爆炸的两种效果(爆炸型和球型)2. 创建线的属性方法,因为上升效果和爆炸效果都会用到3. 上升效果为了达到那种螺旋上升的效果可以通过sin函数实现一个点的偏移量4. 爆炸效果则是将随机生成多条半径不同的线5. 球形效果则是将规…

【Java】反射

Java中的反射机制 动态代理反射 允许对封装类的字段,方法和构造函数的信息进行编程访问 ==》 反射允许对成员变量,成员方法和构造方法的信息进行编程访问 基本操作:获取(获取class对象【字节码对象】) + 解剖 成员变量 Field —— 修饰符、名字、类型、赋值 构造方法 Cons…