标签:树结构 简单 优先 字符 分块 数据 一段 合数 组合数
<更新提示>
<第一次更新>
<正文>
一场常规省选难度的模拟赛,三题的标签分别是“结论题”,“多项式”,”费用流“。
第一题看似是数位题,但是卡空间,并且删除操作难以用\(\mathrm{Trie}\)等数据结构维护,让人匪夷所思。
正解是一个结论,值域区间最大的\(\mathrm{and}\)和必然诞生在前\(p\)大的数当中,\(p\)与值域的一个\(\log\)同阶。证明可以考虑反证法,分成\(\mathrm{ans}\)最高位以上的位和最高位以下的位两部分考虑即可。考试的时候连暴力都没写出来,后来听说暴力是用\(\mathrm{Trie}\)树贪心。
第二题很明显的一个多项式题,\(40\)分直接写一个\(NTT\)卷一下积即可。正解是用第二类斯特林数拆自然数的幂,然后整理成分治\(\mathrm{FFT}\)的形式,再做卷积。当权值为组合数的时候有一个组合结论没有看懂,所以没有订正。
第三题看数据范围就可以猜出是费用流的题目。建图方式就是保留原树结构,然后源点网所有路径起点连一条边,所有路径终点往汇点连一条边,这样流表示选择一条路径。然后再从起点向终点连一条边,表示不选这条路径。这样就可以跑费用流了,最大流量就表示每条路径都做了一种选择。处理费用只需差分一下费用函数即可,由于导数单增可以保证费用也是单增的,流经时会优先选择费用小的。
前一段时间在写网络流和字符串,寒假的时候听的\(\mathrm{zhengruioi}\)的网课,专题是分治分块,数据结构,字符串,数论函数。所以暑假前就准备先搞这些内容吧。应该是从字符串先开始,字符串的大体内容如下,带\(^*\)的项目是不准备写题的:
\(2.\) 字符串\(\mathrm{Hash}\)
\(9.\) 回文自动机
其中\(\mathrm{Trie}\)和\(\mathrm{Hash}\)简单复习一下就好了,\(\mathrm{KMP}\)和\(\mathrm{AC}\)自动机要好好写题总结一下,然后就是后缀自动机和回文自动机,就有很多题可以写,需要总结原理和套路。
<后记>
标签:树结构 简单 优先 字符 分块 数据 一段 合数 组合数
原文地址:https://www.cnblogs.com/Parsnip/p/12318345.html