集训杂记 7/17

7/17

7/19

因为不知道前天要写啥所以就写了个标题
今日 \(AK\) \(AC\) 自动机

写个知识点阶段性总结。

\(AC\) 自动机

一句话就是通过把 \(tire\) 树和 \(KMP\) 结合起来实现快速匹配多个模式串。

其中有一个优化是连成 \(tire\) 图。\(tire\) 图上囊括了很多信息,所以几乎单独成了一个考点。

时间复杂度是 \(O(文本总长度 + 文本段个数 \times 字符集长度 + 文本串长度)\),一般给出的数据范围为 \(1e6\) 左右。

还有一个优化是连成一个 \(fail\) 树,这时可以和其他的数据结构联系起来。

一些例题

模板简单版

板子。

模板加强版

稍微修改一下询问适配时候的语句即可。

模板二次加强版

\(fail\) 树优化,其他部分同上。

背单词

\(fail\)\(+\) 线段树优化求最大值。

病毒

对于 \(tire\) 图的应用。在 \(tire\) 图上能找到一个环说明有无限长的串。

文本生成器

从此题后应该了解到在 \(tire\) 图上 \(dp\) 时,\(tire\) 图的节点也可以作为一维。因为它可以包含所有的状态,而且处理出了最长前缀,有很多有用的信息。

密码

同上。

禁忌

一看那个神奇的数据范围,应该就能想到是矩阵快速幂。依旧是设的 \(tire\) 图上的点进行转移,还有就是如果算分子分母时位数太大可以考虑同乘或同除。

第一次做 \(special\) \(judge\)

弄到类似于这种构造题的时候首先要找规律。

7/20

今日模拟赛-\(CSP\) 模拟 \(1\)

都是神仙。

\(T_1\) 大神 \(Rreally\) 提出了倍增解法。

核心思想就是因为每个数的乘法、余数之间是相互独立的,所以可以分步递增处理。

本来还兴致冲冲地以为所有的分步处理都有新思路了,结果发现只有前后无影响的才可以。

总之,就是一种值得保留的思路。

原根做法留坑,循环矩阵是啥呀

\(T_2\) 一种换根 \(dp\),就是推一推式子。

用到了类似于 游走 的系数计算,我自己想出来的!

\(T_3\) 据说会卡特兰数一眼切,可是我不会呀。

稍微学习了一下,感觉那个等效和数形结合的思路挺强。

神犇博客

还有就是,注意某些部分分的数据范围,不同的约束条件范围可能不同。

\(T_4\) 又是一个非常厉害的思路。

还是注意到 \(dp\) 数组要能够体现所有的状态。

7/21

大雨

今日,\(dp\) 又一次展现了其极限。

7/29

连着改了一周的题,于是就连着咕了一周

要把我们 \(CSP\) 模拟 \(2-8\) 的题都写到这大抵是不可能了,所以只简略地说一说。

开始前说一句,今天又改了一天的题,浪费了很多也收获了很多

改完所有的题之后真是长吁一口气啊……

\(D_2-T_2\) \(dp\) 维护每种颜色的出现次数和上一种颜色,采用填颜色的思路而不是转颜色的思路,树状数组求逆序对,深化滚动数组应用。

\(D_2-T_3\) 考虑组合意义转移的方法,或者直接用两个 \(dp\) 数组维护( \(dp\) 牛皮!),前缀和相减。

\(D_2-T_4\) 学到一种 \(min\) 等函数拆开的方法,注意用树状数组不要用线段树,常数太大。

\(D_3-T_3\) 加零构造统一序列,树上 \(dfs\),记得加 \(break\)

\(D_3-T_4\) 一种二叉树的构造处理,提高码力,构造方法详见,大概是构造一棵可以快速查出覆盖情况的树。

\(D_4-T_4\)\(D_2-T_2\) 相似?\(dp\) 转移时提前算上内部交换的费用。

\(D_5-T_3\) 数位 \(dp\),今天改了一下午和半个晚上,现在还有点懵,总之就是维护上下界太难了,\(dp\) 里面设是否压紧上下界。

\(D_5-T_4\) 奇怪的转移?留坑。

\(D_6-T_2\) 感觉跟数位相关的构造挺有意思……

\(D_6-T_3\) 双指针扫一遍,分情况,分治,或者扫描线加线段树。但是场上想的线段树是假的。

\(D_7-T_3\) 根号分治,并且考虑两种常用构造数列的方法。

\(D_8-T_4\) 吉司机线段树,今天早上想了半天终于弄懂了。

其他小事记

\(D_4-T_3\)\(xuany\) 的假二分跑得比正解快并且 \(AC\),这正是:假作真时真亦假。

这里能藏话??

jjq我爱你

\(D_2-T_4\) 线段树常数太大导致过不去,\(Flandre\) 的小工具也不管用了。

\(D_3-T_3\) \(Flandre\) 卡过去了,数据加强也不管用。

\(D_3-T_4\) 码力 \(+3\)

\(D_4-T_1\) 想出了与题解不一样且更好理解的办法!!!

\(D_4-T_2\) 正着设不行就反着设嘛。

\(D_5-T_1\) 什么鬼贪心啊,为什么能过啊。

\(D_6-T_4\) 数据真的水……题解真的水……最后还是靠自己……

\(D_8-T_1\) \(curly\) 直接以埃氏筛 \(n loglogn\) 的复杂度暴打 \(n logn\)的标算!!!(虽然并没有快多少并且因为常数问题好像还慢了)

\(D_6-T_3\) \(curly\) 以为自己想到了正解狂打两个半小时,最后果不其然拿到了 \(36pts\) 的赛时最高分!!比别人暴力整整多了 \(16pts\) !!并且直到现在还是所有未 \(A\) 做法的最高分!!(小丑一个)

\(Melting Pot\): 能不能给他抽象出来一个,呃,比较具体的概念?

总结

赛时能拿到的分越来越多了,的确是有一直在进步的感觉。虽然今天没能推知识点有点遗憾,但是改题也带来了一些收获。、

7/30

据说下了一场非常大的雨,据说都红色预警了,我没感觉,只是感觉到雨一直在下。

晚饭之后游记

看到了一堆满是遗憾的人,我不能确保我未来不是其中一个。

包括这次,据说惨败了,有人失落,有人迷茫。

可是,我觉得我还能接受吧。

一定会结束的,选择赌的时候就已经失去了考虑结果的资格。

但取而代之的,你可以有一个广阔的空间恣意你的年少轻狂。

不对,想这么多干啥,还有好几个月呢,滚回去学长链剖分。

\(D_9\)

今天居然有时间写模拟赛总结了……

\(T_1\) 魔改\(Floyed\),果然考到 \(Floyed\) 都是考最外层循环顺序……

\(T_2\) 正解是找规律+构造+单调栈,复习了一下单调栈垂线法。隔壁 \(jjq\) 吹嘘自己不打正解跑过了,结果洛谷过不去被制裁了(鼓掌)

\(T_3\) 炸到数论这个不会的点了,要不然挺普通的一道数据结构题。

\(T_4\) 根号分治真的该记住了,然后就是长链剖分,新知识点get。

总结是又挂分了,也许明天真要跑个拍,并且某些特殊条件可能有正解提示。

7/31

七月份最后一天……

\(D_{10}\)

\(T_1\) 什么题……一开始以为自己看不懂,结果看懂了还是以为没看懂,最后好不容易说服自己看懂了,结果一出来又看不懂了……滚吧。

\(T_2\) \(oj\) 原题,可以各种乱搞,官方题解是都搞到一块然后双指针扫。

\(T_3\) 一道找性质的好题,还抢了个首 \(A\)

详细的题解
首先可以知道对于每个 k 的答案就是所有边的总贡献乘上一个概率(概率应该挺好求就不写了)

对于一条边来说,它的贡献就是两边所有满足这样条件的点的个数的乘积:连线路径中没有与之相同的权值C

那么我们需要一个数组 f[r],表示在 r 的子树中与 r 相连的路径中没有与 r 到其父亲路径的权值相同的边的点的个数。

然后“下面”的点的问题就可以解决了,同时我们可以发现一个很好的性质,就是一个节点的子树可以被其中所有与父亲连边的权值等于该点连边的权值的点的 f 划分。

那么我们可以依靠这个性质通过一遍 dfs 求出所有的 f 数组,开一个类似于桶的东西记录 f 之和即可。

对于上面的点,我们实际上求的是它最近的权值相同的父亲节点的 f 值(想一想),如果没有相应的父亲节点,搞一个虚拟节点即可。

\(T_4\) 感觉没啥东西一题……好像就学了个区间并?但凡构造一组数据都做不出来。

??

今天天气放晴,模拟赛考的也挺好,心情不错,推知识点去。

九亿九千八百二十四万四千三百五十三

十亿〇七

二十一亿四千七百四十八万三千六百四十七

九百二十二亿三千三百七十二万〇三百六十八亿五千四百七十七万五千八百〇七

8/2

\(D_{13}\)

咕咕咕

8/5

8/7

前面忙于改题所以又欠下一堆……

到现在还咕着两道题……

但是明天没有考试!好耶!

\(D_{11}\)~\(D_{15}\)

\(D_{11}-T_1\) 比较显然的数位 \(dp\),可以考虑记忆化搜索优化复杂度,(这里是全机房唯一一个花了一下午写了个递推然后爆 \(T\) 的人)

\(D_{12}-T_1\) 我推出来式子了!但是因为 \(2\) 写成 \(1\) 然后寄了。(恭喜 \(Xuany\) 喜提打表 \(log\) 称号)

\(D_{12}-T_2\) 线段树优化矩阵乘法然后疯狂卡常。(可以考虑答案传址进去而非传出来)

\(D_{12}-T_3\) 高级 \(dp\)

\(D_{12}-T_4\) \(SG\) 函数结论(应该会证明)

\(D_{13}-T_2\) 统一化,变更成 \(0\)\(1\),然后判断每个格子是小 \(0\) 还是小 \(1\)。(?)

\(D_{13}-T_3\) 结论:两个点集合并后的直径端点必定是原点集的直径端点,线段树维护。

\(D_{13}-T_4\) 二项式反演,第二类斯特林数。

\(D_{14}-T_2\) 合并子树思想

\(D_{14}-T_3\) 难点不是 \(SG\) 函数,是处理数位那一堆东西

8/12

怎么又咕下这么多……

不管了,还不完了。

墨笔钨丝莫比乌斯反演

卷积?由函数生成函数?

大概就是这样的。

\(f \ast g\) 已经是一个新的函数了,并且有这样的定义:

\[f \ast g (x)=\sum_{i \vert x} f(i)g(\frac{x}{i}) \]

特殊的性质还挺多的。

但是还需要一个奇奇怪怪的 \(\mu\) 函数。

定义如下:

\[\mu(x)=\begin{cases}1 \qquad \qquad x=1\\0 \qquad \qquad 存在 p^2 \vert x,p \in prime\\(-1)^k \qquad k 为质因子个数\end{cases} \]

如此奇怪的定义决定了其不同凡响的功能。

基本式

\[1 \ast \mu=[x=1] \]

\[\sum_{i \vert x}\mu (i)=[x=1] \]

分情况证明即可。

引理 \(1\)

\(f,h\) 均为积性函数,则 \(f \ast g\) 也为积性函数。

带入证一下。

引理 \(2\)

$\mu $ 为积性函数。

基本使用方法就是构造出一种类似于 \([x=1]\) 的东西,然后对它使用莫比乌斯反演。

然后又开始讲数论分块了?

哦,好像就是对于单调连续的函数,统计其起点和终点,然后算总的值。

好的。

8/14

8/23

我这是咕了多久啊?

总结

bobo 说,要对最近时不时有一个总结

首先,比较好的一点是,最近的模拟赛越来越顺手了

发现我就是适合那种思维比较巧妙(但是只有一点点),且总体思维并不复杂,码量比较少的题目。

遇到那种考验码力的题或者分好几步的题就挂掉了 qwq

主要就是考试的时候注意力不够集中嘛,或者容易在一个不太正确的思路上吊死

还有就是一些麻烦的东西不想打

这一段时间颓得也稍微有点严重

包括但不限于 夜聊、颓洛谷

精力不够是思路不够的根源

私密马赛!

8/27

今日放假

论理呢,也就该写个总结

但是我今天学了网络流!

呃,五分之一?

感觉网络流的题都是很有意思的思维题

想那个图怎么建很有意思

要润力

所以假期总结

这个假期,感觉过得很充实

怎么说呢,就是打模拟赛,真的很爽。

但是老爽,就不爽了。

所以打几天歇一天的设计真的很赞!

这个假期,收获了很多,学到了很多。

一开始来的时候还是在学 AC 自动机,结果现在零基础他们都做了好几道 AC 自动机了。

学习了好多刚来的时候都觉得很遥远的知识点,并且是因为在比赛中学的,所以学的还都是 plus promax 用法。

果然一边打模拟赛一边推知识点才是正解。

然后就是,心态也成长了许多。

一开始打的时候,看到自己垫底就不乐意,看到别人比自己强就烦,看到自己啥也不会就慌。

但是现在,就比较自然了。

能够比较客观的看待自己的分数,分析原因,等待下一次。

而且一开始不愿打暴力,拿部分分(现在也不知道是为什么),但是现在部分分拿得贼溜(虽然有的十几二十分还是不想拿)。

但还是有缺陷的。比方说我最大的缺点是懒。

脑子比较懒,不愿意动脑子。

而且别人干啥我也跟着干啥,跟着别人干就没有自己的主见了。

嗯,这个一定要改过来。

就这样。

\(E.O.F\)

posted @ 2023-07-29 21:26  curly_6  阅读(282)  评论(1)    收藏  举报