2026省队集训
-
4.25 杂题选讲
今日的内容是杂题选讲,但是还是分为了几个专题
1.FWT相关
由于实力不足,在昨天晚上预习了整整一个晚上之后依然就连模板都没有弄明白,所以在上课时还是一点都听不懂。
2.dp of dp
大概的思想就是对于dp状态进行dp,但是其实本质上就是压缩dp状态。而课件上讲的是自动机dp,所以也是将dp的转移转化为类似于自动机上的转移,将可行的有限的状态看做是自动机上的节点进行转移。
3.meet in the middle
其实就是类似于dfs的优化,一般情况下对于大量的搜索考虑进行折半,可以将搜索量降为 \(O(n ^ {\frac n 2})\),而比如例题中就是降为了 \(O(n ^ {\frac n 3})\)。
4.图容斥
不太听到懂,大概的思想就是状压,考虑容斥,抓住图的性质。
总体来说,第一次听还是有一些懵,一些比较抽象的东西还是比较难以消化,但是还是收获到了一些思想。
-
4.26 组合计数
今天主要是讲一些计数题,但是由于一开始难度就比较大,实在难以听懂,没什么收获,可是从模拟赛时感受到了计数的重要性,觉得应该要自己在多练练。
-
4.27 模拟赛1
由于比赛经验不足,所以导致应为第一题被看了很久,发现第一题不可做之后才看后面的题。对于第二题有一个想法,由于是最后十分钟想到的而且还不成熟就没有实现。
题意:给定正整数 \(n\) ,和长度为 \(2^n\) 的两个数组 \(f\) 和 \(F\),求:
\(\sum _ i \sum _ j f_i \times f_j \times F_{i \& j} \times F_{i \| j}\)
考虑构造两个数组 \(a\) 和 \(b\),使得 \(F_i = \sum _ {d \in i} a_d\) , \(b_d = \sum _ {d \in i} F_i\)。
所以原式就变为了 \(\sum_i \sum_{j \& j \in i} a_i \times b_j \times \sum_{i \in t \in j} f_j\)。
枚举 \(a_i\) 和 \(b_i\) ,然后高位前缀和求后面一部分即可,复杂度 \(O(3 ^ n n)\)。
-
4.28 好题分享
只讲我认为最棒的一道题,因为大部分都听不懂。
qoj6661,题意:
有一个 n 个位置的圆桌,每个位置上都写着一个 \([0,n − 1]\) 内的整数,
且互不相同。每个位置上都有一个人。在接下来的三天内:
第一天,每个人会看到自己位置上以及右边位置上的数,并同时独立
修改自己位置上的数。
第二天,每个人会看到自己位置、左边位置以及右边位置上的数,并
同时独立修改自己位置上的数。
第三天,每个人会看到自己位置、左边位置以及右边位置上的数,并
同时独立修改自己位置上的数。
你需要制定一个策略,使得在第三天结束后,任意两个相邻位置上的
数都不同,且全场至多只有 3 种不同的数。
注意,在同一天内,所有 \(n\) 个人的策略应当是完全相同的。也就是说,
如果两个人视野范围内的数完全相同,他们应当作出同样的修改。
优秀的构造:
考虑如何进行构造两个函数,使得 \(a \not = b\) 有 \(f(a , b) \not = f(b , c)\) ,然后就是有启发意义的一步,设 \(f(x , y)\) 为 \(x\) 与 \(y\) ,在二进制位下的第一个 \(x\) 在这位上是 \(1\) 而 \(y\) 是 \(0\) 的位置,这样就一定能保证上面这种情况。但是这样可能就会出现一种问题,那如果有 \(x \in y\) 怎么办?我们考虑给每一个值映射到一个新的数,设的两两不重即可,直接保证每一个数的 popcont 一定即可。
考虑前两步可以不断地压缩,但是至多只能到4,而第三步引文可以看到两边的数,让所有的4变成与另外两个数不同的很简单。
这些构造对于思维的启发还是很大的,比较值得去回味一下。
-
4.29 模拟赛2
考试策略依旧不足,对于题目也还是没怎么弄明白,但还是有一点收获。
对于第二题中求:\(S(n) = \sum_{i = 1}^{n} i ^ k\)
首先有一种方法是我们可以利用拉格朗日插值在 \(O(k)\) 的时间内求出一个 \(S(n)\)。
而因为 \(i ^ k\) 是积性函数,所以利用线性筛可以在 \(O(n)\) 的时间内求出前 \(n\) 个 \(S(n)\) 。
对于求取 \(S(\frac n d)\) 这种时当 \(n\) 很大时就可以考虑分类讨论。
-
4.30 模拟赛3
难度递增,t2,t3都看不懂,但是t1还是比较有意思的。
题意:构造三个排列 \(a_i\) 和 \(b_i\) 和 \(c_i\) 使得 \(|\sqrt a_i + \sqrt b_i + \sqrt c_i - 2 \times \sqrt n| \le 2.5\)
好像有很多乱搞做法,但是正解真的很巧妙。
考虑当 \(n = C_{m} ^ {2}\) 时有 \(n = 1 + 2 + 3 + \dots + m\)
考虑构建出三个三角形:
然后我们发现讲这三个三角形重合不就是了吗,amazing!
那如果不是 \(C_{m} ^ {2}\) 怎么办,扣掉一部分就行了。
-
5.2 特殊题目
https://www.cnblogs.com/znstz2018/p/18695755
qoj6669
如果只是普通的以二进制编码的方式进行传入,长度一定是6000级别的。
我自己的想法:因为题目保证每一个 \(a_i\) 不同,所以可以只传入奇数位的 \(a_i\) ,长度就变成了4500,但是好像没什么拓展空间。
正解是考虑一种神秘的角度,被这种传入看作是一种函数形式,只需构造一种函数的形式吧每个 \(a_i\) 都找到与之对应的 \(b_i\) 即可,于是使用拉格朗日插值,应为构造了一个 n-1 次的多项式,传入100个整数即可。那除法怎么办呢?对于 1e9 + 7 取模即可。(太难想到了)
暂时还没回顾完,简单谈谈感想
很多都是比较妙的题,但还是会有一些技巧,例如 qoj3098 推性质再结合通讯题的模式进行作答,而 qoj64 这种就是考察你对于一种算法的透彻应用,十分有趣。
还是要练练这种交互形式的构造和通讯传输的技巧,对于思维也是很大的帮助。
-
5.3
dp
主要的收获是见到了很多之前没见过的东西,例如点分治优化背包,退背包,线头之类的。
谈谈感想,dp的难题主要就是状态的设计与优化,一旦转移也就会运用一些trick,还是可以多见见题目。
数据结构
感觉放的题目不是很好,主要困难的部分都不是数据结构的东西。
看完之后主要的感受就是多见识还是太重要了,因为之前看过了树分块的博客,所以秒了第一道互测,而后面放的SAM感觉就是听懂了一部分但还是有很多问题,就连一道点分树的不困难题都看不出来了……
数据结构在近几年的大赛中出现的频率还是太高了,需要重点练习一下。
-
5.4
图论
这次是杂题选讲,选的题目都是非常不错的。第一道题目的隐式建图很具有启发意义,也是学习到了很多图论的思想:
优化建图。这其实是有很多方面的,例如线段树优化建图的时间与空间的优化,IOI2019 Sky Walking 中的优化也是有些巧妙的,通过减少图上过多的状态来达到对于核心信息的保留,发现例如之后的 AT_pakencamp_2018_day2_g Grand Graph 对于图的性质的发掘以此来达到简单的操作。
字符串
说实话感觉内容太多了,而且都不是很简单,没太的听明白。
-
5.5 模拟赛4
后面两题太仓促了,一点没听懂,看到第二题的 FWT 就不知道是什么了。
说说对于第一题的感想,一道很不错的字符串题,但是我确实是不会。这题对于AC自动机的理解太够深刻了,对于串的匹配也是我难以想到的,将自动机看做是图然后来进行缩点,也是我之前从未有想到的,还是对于字符串这块的理解太过薄弱也是学的不够深刻。
感想
总体来说的话呢,感觉对于这些高层次的知识点是一点没见过,考试上对于自己不会的题目也是不能很好的处理,多见见东西,多看看题目,不能太过盲目的只是做题,对于好题要进行梳理和总结,接下来要好好的沉淀下来,努力提升水平,对于这次学习进行好好的梳理,把遗留下来的大量题目进行研究。


浙公网安备 33010602011771号