2022.7.27 闲话
吐槽
为啥我那个 Crosspain 题总被神秘乱搞日过去 .
为啥要骂造数据的,你行你造一个啊,我感觉造一个答案非 0 的都挺难 .
(见 Chapter 5)
这篇闲话下面的内容可能有点水了 qwq
《五年败北三年模拟》
Chapter 1 —— 分治的败北
平面最近点对。
先对 坐标排序,然后一个一个添加点,我们设置一个阈值 表示目前找到的最优解 .
开一个以 为关键字的 std :: set
,每次加入的时候,可以把与当前点横坐标差值超过 的先扔掉,然后暴力查询纵坐标差不超过 的点更新 .
暴力最多查询 次,所以复杂度在于 std :: set
,于是 ,同分治法 .
而且还好写……
Chapter 2 —— Hash 的败北
考虑一个问题:
子串 Hash
给一个字符串 ,多组询问两个子串是否相等 .
众所周知 Hash 不是确定性算法我们很生气!!!并且题目名字一定和做法没有关系所以我们不 Hash .
但是直接做貌似很困难??
我们引入高科技!使用 Border Theory 中的 IPM( 的条件不难解决)即可单次 解决 .
Hash 能干的最有用的事被干了。
Chapter 3 —— exCRT 的败北
考虑合并两个同余方程组:
首先答案肯定是 意义下的,问题就是要找 是多少 .
我们考虑直接暴力,枚举所有满足第一个同余方程的 ,然后一个一个判断是否满足第二个,这样就找到答案了 .
关于论证这个为什么不会被卡的见这里:中国剩余定理小记
Chapter 4 —— 高精快速幂的败北
以一道普及组题引入(accoders):
数的幂次
给两个整数 和 ,, .
Python 是过不去的 = =
据 xrlong & GOD_hj 所说高精快速幂也过不去 .
我想普及组题怎么这么 NB 呢?
首先把 按权展开就得到两个多项式 .
于是 ,直接算 ln/exp 即可 .
如果不满意还可以压位( 改成 ).
但是我们忽略了一个问题,只有 末位是 时才能取 ln!
这个不难解决,先去掉末位的 ,然后除一下最后乘回去就好了 .
选一个可爱的 NTT 模数大概就行了 .
但是我觉得 暴力也没啥事 .
Chapter 5 —— AC 自动机的败北 & Hash 的反击
让我们看一道题:
令 ,要求支持以下操作:
1 hoc s
,令 ,其中 是字符串(保证操作前 ) .2 hoc s
,令 ,并查询 中的所有字符串在给出的字符串 中出现的次数之和 .
用 std :: set
记录一下每次询问后的字符串集,对于每个字符串只需记录其长度与 Hash 值 .
对于操作 1,直接计算字符串 的 Hash 值丢 set 里就好了 .
对于操作 2,则直接遍历容器中的元素,并枚举 的起始位置,用字符串 Hash 的前缀和快速算出这一个子串的 Hash 值 . 若相等,则答案加一 .
用 set 的同时记录一下这种串的个数即可冲过去, 啊! 过 50w 什么操作???
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16526657.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】