省选模拟32

A.

  看了半天发现这玩意就是个积性函数,满足质数处的取值好求,$p^k$处取值可以简单dp预处理,所以直接套个min_25筛就完了。

  于是这题就成了一大堆模板的堆砌,拉格朗日插值+min_25筛+dp,虽然看起来很麻烦但是似乎都很显然?

  一个小优化:对于所有的自然数幂和,在比较小的时候不必全都插值,可以预处理一部分。

  调了好久。

B.

  考虑建出来trie树,那么现在的问题是判断一个节点内部有没有值。

  这个东西可以考虑容斥,任意两个不相等=全集-两个相等+3个相等。

  所以建出来5课trie树,分别维护上面那几个东西就行了。

  然而会被卡空间,所以这并不是正解。

  但是某些大神发明了一些神奇的压空间方法:因为左右儿子必然有一个是自己的编号+1,所以可以压掉一个儿子,用某个数用不到的最高位存压掉的是哪个儿子。

  trie树的size大小可以开成short,假如爆了就用某个数用不到的最高几位存一下。

  对于trie树,假如现在某个点下面只有一条链,那么可以压成一个节点。

  于是就能开下了。

C.

  考虑枚举一个矩形边框,那么满足的条件应该是四个边界都有点,并且两种摆放方案(对角)最多不满足一个,那么可以状压dp。

  如果逐格转移的话复杂度会死,考虑预处理出来每种格子会使那些格子变成1,然后对于每种状态转移就行了。

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12369312.html