「模拟赛」A 层多校联训 4(卖品:CTH)
双倒一啦!
感觉这次最大的错误就是没看 T2。(本质原因还是时间浪费的太多了)
赛时记录在闲话啦
02 表示法
唐诗题!考高精的人都\(**\),输出深度优先搜索解决。高精乘 2、高精减。
子串的子串
官方题解写的不好,放一下 Ratio 的好吃题解:
意思就是:\(ans_{l,r-1}\) 和 \(ans_{l+1,r}\) 中 包含重复的部分 \(ans_{l+1,r-1}\),于是我们用 \(ans_{l,r-1} + ans_{l+1,r}-ans_{l+1,r-1}\) 来转移得到 \(ans_{l,r}\) 以避免重复,最后别忘了再加上字符串 \(s[l,r]\) 自己。
魔法咒语
trie 树
非官方题解思路:(CTH 巨佬的赛时思路,更好理解)
正序、倒序各建一颗 trie 树分别记为 \(tr1,tr2\),那么所有前缀的个数就是 \(tr1\) 的节点数,后缀的个数就是 \(tr2\) 的节点数。
但直接相乘显然会有重复部分,比如两个字符串:abc 和 cd,前缀 abc 和 后缀 d 可以拼成一个字符串 abcd,同样前缀 ab 和 后缀 cd 也可以拼成abcd,有重复,考虑怎么减去这部分重复。
什么时候会有这样的重复呢?发现如果我们存在一个前缀的最后一个字符和一个后缀的第一个字符相同时,就会造成 1 个重复,因为 (该前缀删去最后一个字符加上该后缀) 与 (该前缀加上该后缀删去第一个字符)可以拼成相同的字符串。
但注意,我们所找的会造成重复的前缀和后缀不能只有一个字符(这样删去一个字符后就成空串了,但题目要求不为空)。
所以我们对于 26 个英文字母分别记它们作为前缀最后一个字符的个数 \(cntQ_{字母}\) 和 作为后缀第一个字符的个数 \(cntH_{字母}\),保证这些前缀、后缀都是两个及以上的字符。
那么答案就是两棵树的节点数相乘减去 \(\sum _{i=26 个英文字母} cntQ_i\times cntH_i\)。
表达式
赛时最后五十分钟打了 45 部分分(不会 CRT),以为会很极限了,结果读入出锅保龄 RE 了。
部分分:
\(15pts\):暴力,每次询问从 \(1~n\) 算一遍就好了;
\(5pts\):每次询问时所有符号相同的情况,记一下所有数的加和 \(s\) 以及乘积 \(f\),询问 \(x\) 时符号是 + 答案就是 \(x+s\),是 * 答案就是 \(x\times f\),是 ^ 答案就是 \(x^f\);
\(15 pts\)(但实际有 \(25pts\)):对于没有 ^ 的样例,可以分块或者线段树简单维护就好,如果询问 \(x\) 时,序列可以转化为:\((k_1x+b_1)\times k_2+b_2=k_1k_2x+k_2b_1+b_2\),那么 \(k_{new}=k_1k_2,b_{new}=k_2b_1+b_2\),分块预处理出每个块的总 \(K\) 和 总 \(B\) 就好了,更新时把整个块重新遍历一遍,更新 \(K,B\) ,查询计算一遍所有块得到总的 \(k_总\) 和 \(b_总\),代入 \(x\) 计算。
正解:
数据点分治
前三个点模数过大但数据范围小直接暴力。
其他的点对于模数特别小的,直接维护线段树上的点所有 \(x=[0,mod-1]\) 进入该点时得到的答案,时间复杂度大概是 \(O(qn\log n mod)\)。
而模数较大但是是合数的,把模数拆分成多个小一点的互质的数作为模数,对于每个模数分别像以上方式一样维护,最后 CRT 合并即可。
End
哦对,CTH 大佬无论讲题还是调题都巨棒呢,人也很热心,什么巨型数据结构啊,5k 以上代码啊,都欢迎来找 CTH 调捏
「模拟赛」A 层多校联训 4(卖品:CTH)的更多相关文章
- 「CSP-S模拟赛」2019第四场
「CSP-S模拟赛」2019第四场 T1 「JOI 2014 Final」JOI 徽章 题目 考场思考(正解) T2 「JOI 2015 Final」分蛋糕 2 题目 考场思考(正解) T3 「CQO ...
- #10471. 「2020-10-02 提高模拟赛」灌溉 (water)
题面:#10471. 「2020-10-02 提高模拟赛」灌溉 (water) 假设只有一组询问,我们可以用二分求解:二分最大距离是多少,然后找到深度最大的结点,并且把它的\(k\)倍祖先的一整子树删 ...
- #10470. 「2020-10-02 提高模拟赛」流水线 (line)
题面:#10470. 「2020-10-02 提高模拟赛」流水线 (line) 题目中的那么多区间的条件让人感觉极其难以维护,而且贪心的做法感觉大多都能 hack 掉,因此考虑寻找一些性质,然后再设计 ...
- python爬虫22 | 以后我再讲python「模拟登录」我就是狗
接下来就是 学习python的正确姿势 做爬虫 绕不开模拟登录 为此小帅b给大家支了几招 python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定! 有些网站的登录很弱鸡 传个用户名和密 ...
- 「NOIP模拟赛」数位和乘积(dp,高精)
统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又 ...
- 「Vijos 1284」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法阵
佳佳的魔法阵 背景 也许是为了捕捉猎物(捕捉MM?),也许是因为其它原因,总之,佳佳准备设计一个魔法阵.而设计魔法阵涉及到的最关键问题,似乎就是那些带有魔力的宝石的摆放-- 描述 魔法阵是一个\(n ...
- 「CSP-S模拟赛」2019第二场
目录 T1 Jam的计数法 题目 考场思路(正解) T2 「TJOI / HEOI2016」排序 题目 考场思路(假正解) 正解 T3 「THUWC 2017」随机二分图 题目 考场思路 正解 这场考 ...
- 「CSP-S模拟赛」2019第一场
目录 T1 小奇取石子 题目 考场思路 正解 T2 「CCO 2017」专业网络 题目 考场思路 题解 T3 「ZJOI2017」线段树 题目 考场思路 正解 这场考试感觉很奇怪. \(T1.T2\) ...
- Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
一棵10层的二叉树,最多包含多少个结点? 注意当一棵二叉树只有一个结点时为一层. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余 ...
- 「模拟赛20190327」 第二题 DP+决策单调性优化
题目描述 小火车虽然很穷,但是他还是得送礼物给妹子,所以他前往了二次元寻找不需要钱的礼物. 小火车准备玩玩二次元的游戏,游戏当然是在一个二维网格中展开的,网格大小是\(n\times m\)的,某些格 ...
随机推荐
- 加速 Mac 时间机器备份
加速 Mac 时间机器备份速度教程,Time Machine 备份太慢的解决方法 @Pertim 2020-09-11 相信用过一段时间电脑的人,都知道经常备份 macOS 系统的重要性了.特别是最近 ...
- 台式机电脑散热之狂想曲——主机机箱散热的另类方法(纯空想中ing)
本博文是一篇狂想曲,之所以叫狂想曲是因为本文只是博主在无聊时突发奇想,而且仅停留于想的阶段,所以本文内容不用太过认真. 事情是这样的,博主有一台式机,有事没事的就喜欢宅在宿舍里面,有时候还能偶然用这台 ...
- Canvas简历编辑器-图形绘制与状态管理(轻量级DOM)
Canvas简历编辑器-图形绘制与状态管理(轻量级DOM) 在前边我们聊了数据结构的设计和剪贴板的数据操作,那么这些操作都还是比较倾向于数据相关的操作,那么我们现在就来聊聊基本的图形绘制以及图形状态管 ...
- 白鲸开源 X SelectDB 金融大数据联合解决方案公布!从源头解决大数据开发挑战
业务挑战与痛点 随着互联网技术的发展.云计算技术的成熟.人工智能技术的兴起和数字化经济的崛起,数据已成为企业的核心资产.在金融行业中,数字化已成为了支撑各类业务场景的核心力量,包括个人理财.企业融资. ...
- 使用 extract_sqlaudit_proc 存过分析ob性能问题
最近在某个金融单位核心系统项目做ob的性能压测,期间遇到不少问题,现场两周了每天都加班到凌晨一两点左右,真的是累死. 我其实进ob之前有心理预期,卷就卷吧,八九点下班也能接受,没想到真到了干项目的情况 ...
- dpwwn-01靶机笔记
dpwwn-01靶机笔记 概述 这是一台Vulnhub的靶机,主要在web方面,我们无法找到突破口时,应该怎样抉择mysql和ssh的爆破,以及弱口令的尝试. 我这里准备了连接,当然你也可去Vulnh ...
- Java解决递归造成的堆栈溢出问题
在Java中,递归造成的堆栈溢出问题通常是因为递归调用的深度过大,导致调用栈空间不足.解决这类问题的一种常见方法是使用非递归的方式重写算法,即使用迭代替代递归. 1.方法一:非递归的方式重写算法(迭代 ...
- 你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!
前言 作为一名开发者,我经常会在 GitHub 和 Gitee 上 fork 各种项目.时间一长,这些仓库就会堆积如山,变成了"垃圾仓库".每次打开代码托管平台,看到那些不再需要的 ...
- 手把手教Linux驱动4-进程、文件描述符、file、inode关系详解
本文目标 什么是文件描述符? 进程打开文件相关信息管理 Linux设备文件三大结构:inode,file,file_operations mknod 做了什么事? 进程打开设备文件 驱动如何支持同类型 ...
- 如何用AI抠图助手进行直播--新手指南
如何用AI抠图助手进行直播 因AI抠图助手目前还没有提供推流直播,所以,可以采用抖音的"手游直播"方式,即抖音开启手游直播后会录制你手机屏幕画面,进行录屏直播:所以我们只要打开AI ...