杂题选做

本文不定期更新??(博主大概率会鸽

upd 2021.1.4

1.Luogu P3747[六省联考 2017] 相逢是问候(线段树 + 扩展欧拉定理)

对于类似$c^{c^{c^{...}}}$注意幂的顺序不能调换!!!

可以考虑欧拉定理(注意其两种形式) 即$a^{x} = a ^ {x modphi(p) +phi(p) }$ 要求 x >= $phi(p)$,所以预处理x小于$phi(p)$的情况

注意最多只有log层,然后分块求幂一下就行了(细节调到崩溃)

2.Luogu P3745 [六省联考2017]期末考试

没什么好说的,简单的模拟贪心就结束了

upd 2021.1.6

感觉总是提振不起精神,要改.

1.Cnoi2020 极限领域

容易看出每个数越接近中位数越好,设中位数为x,则排序完即可直接算,直接枚举x显然是会TLE的

容易发现f(x)具有凸性,三分即可

(貌似不是严格凸的,不过可以考虑差分数组直接找到极值点)

2.NOI2018 你的名字

见博客: NOI 2018 你的名字 简要题解

upd 2021.1.11

1.见到括号序计数的问题要想到Catalan数和格点计数

2.BJWC2018 [Border 的四种求法] 巧妙的链分治

链分治大概能解决什么问题呢?我觉得可以理解成树上的扫描线,如果一个题要求链上的某些东西,而这些东西又和链的子树有联系.那么就可以考虑链分治

 upd 2021.1.12

1.如果对圆方树建虚树,要记得考虑包含在方点和圆点之间那条边中的圆点

upd 2021.1.13

1.CF 578D LCS Again 简要题解

 2.[清华集训2016] 你的生命已如风中残烛

一个结论:一个长度为m的序列,其中给定有 n 个正数$w_i$ ,其余都是 -1,和是 1,前缀和均为正数,则每个循环同构只有一种方案合法

证明:反证即可

一般地如果和是s,则有s种方案合法

upd 2021.1.18

1.[ZJOI2018]历史:完全不会

注意LCT连的虚边(x -> y)代表的是连那个splay最浅的元素,而不是原树的边,不能用y点的信息,一定要用y所代表的splay的总体信息.

如果需要维护子树,就维护虚子树

2.遇到形如max(y - k*b,0),y,b给定之类的题可以考虑倒着来做,如CF505E

upd 1.30

数学英语大爆炸.bomb!bomb!bomb!

1.[SDOI2017苹果树](看了题解)

  1. 首先考虑转化题意:免费选一条链,然后做容量为k的树形依赖背包
  2. 考虑枚举叶子,设当前递归到的为x,设之前递归到为left(x),之后的为right(x),所以x的答案即为left(x) + right(x) + dis[x],dis[x]是可以免费选的部分.
  3. F(x,j)表示考虑left(x),x这条链上可以选($a_{i}$) - 1个的最优值,对于这个点,我们有三种类型的物品需要放,(I)即儿子的物品(II)自己可以免费选的部分(III)自己可以付费选的$a_{i}$ - 1部分.考虑转移.先进行多重背包转移(III),然后把自己的dp值扔给儿子.然后递归完该儿子,再用该儿子以及该儿子可以免费选的部分,来更新自己.并递归下一个儿子.(F仅需叶子节点符合定义就可以)
  4. G(x)表示考虑right(x),x这条链上不能选的最优值,大体同F,只不过我们应该先递归完儿子.再转移(III),因为它对于子树来说,是祖先,是不能选的部分.只有当递归完子孙,自己作为儿子传递给父亲时,才能转移(III)的部分

 2.[SDOI2017遗忘的集合](自己想到,但不会MTT,先滚去学)

  • 考虑朴素的暴力就是从小到大贪心,维护一个dp数组,dp[i]表示i可以表示成当前放的数的和的方案数,可以如果这个位置x的方案S已经可以等于前面的数构造的方案,那么就不用把x放进集合,否则放这个数就要用这个数对后面所有的dp数组,做一次完全背包
  • 考虑放一个j进去的生成函数为1 + $Sigma$ $x^{i*j}$ = $frac{1}{(1 - x^{j})}$,考虑每次都乘时间复杂度不对,考虑取In,有In($frac{1}{1 - x}$) = $Sigma$ $frac{x_i}{i}$,对S求一遍In,每次调和级数加一下,对照和In(S)一不一样决定放不放即可
原文地址:https://www.cnblogs.com/y-dove/p/14232863.html