【题解】牛客练习赛127
A:
序列极差大于 时答案为最大值,否则为次大值
B:
将一个数用质因数拆解后写成 的形式,然后给每个质因子提前算上个 次方,等比数列求和即可。 或者另一个证明的方式是 我们设 表示 的所有约数的 次方和 可以归纳证明可以证明 是积性函数,记 的标准分解是 ,因此只要分别计算中所有质因数的幂次再相乘就得到了 然后
C:
将所有询问离线,然后按照边权从大到小加边,用并查集维护当前联通块个数,由于每次加入边最多使连通块的个数减少1,因此对于每组询问只需要记录联通块个数第一次小于等于R时刻的边权最小值,即可
D:
DP,二分答案,设 f_i_j 表示 的子树内选择 个点中并且使得距离 最远的点的深度最小的值。然后仿照树上背包的方式进行合并:若两颗子树中最深的点的距离小于等于约束距离才合并。注意某个根和子树合并时可能出现根和其他子树的节点均染黑色,只有该子树内部有白点,这个时候可能会导致dp值大于约束距离但仍然是合法的(一部分通过90%的数据就是没有判断这种情况)。 (复杂度 证明参考树上背包)
E:
首先考虑第一个限制:没有含有向边的环,发现若 到 是无向边, 到 是无向边则 到 也是无向边。由此可以归纳证明任何无向边都嵌入在一个无向完全图(下简称团)里。而对于两个团之间所有的有向边的方向必须相同(否则会出现环路),因此考虑将团缩成点的竞赛图,这个竞赛图也必然是个DAG。考虑去掉这个图中拓扑序最大的团,枚举其大小是,并且有C(n,i)种选择点的方式,发现剩下的图也是一个符合条件的大小为 的图。最后在考虑对一个大小为i得团有多少种红蓝染色的方式 使得其满足剩下两个条件,二进制枚举打表发现在顶点数n>7时不存在这样的团,n小的时候的方案数也可以打表得出。因此综合一下,可以得到一个递推式 ,即得
F:
和树上一样做,环上随便选个方向计算初始异或前缀和,查询时用trie维护下,除了正常的查询外,还需查询“当前点前缀和 异或 环上值”,这种情况需保证他们在环上不是同一个节点的子树或者若在同一颗子且树lca在环上,也可以异或上环值,然后k的限制顺序扫描当删除做或者打标记都可以。