CF1310
A.Recommendations
给出序列 \(a\) 与代价序列 \(t\)。你需要进行一些操作,每次操作可以任意选择 \(i\),花费 \(t_i\) 的代价使得 \(a_i\) 加一。求使得 \(a_i\) 互不相同的最小代价。\(n\in [1,2\times 10^5],a_i\in [1,10^9],t_i\in [1,10^5]\)
显然,若有多个 \(a_i\) 相同,那么一定是 \(t_i\) 最大的那一项不变,其他值往后加一;在加一的过程中,只有当前的值 \(V\) 有数且移动该数的代价大于 \(t_i\) 时 \(a_i\) 才会继续加一。
那么可以按 \(t_i\) 降序排序,依次在值域上插入 \(a_i\),若当前值已出现过,则查询大于该数的最小的未出现的值并计算移动代价。查询可以用二分+动态开点权值线段树
B.Double Elimination
题目描述堪比 2024 CSP-S T4。
共有 \(2^n\) 支队伍参赛,每一轮比赛过程如下:胜者组中,\(2^k\) 个人按照编号顺序两两对决,\(2^{k-1}\) 个胜者进入下一轮的胜者组,\(2^{k-1}\) 个败者进入败者组;败者组中,\(2^{k}\) 个人按照编号两两对决,败者淘汰,\(2^{k-1}\) 个胜者与胜者组被淘汰的 \(2^{k-1}\) 个人按照编号两两对决,\(2^{k-1}\) 个胜者进入下一轮的败者组,败者淘汰。最后胜者组的冠军与败者组的冠军赛出最后的总冠军
你有 \(k\) 支喜欢的队伍,且你可以决定所有比赛的胜者是谁,问最多有多少场比赛包含你喜欢的队伍。\(n\in [2,17],k\in [0,2^n]\)
将比赛过程画出来会发现其形态很像一棵二叉树,且每棵子树内所有参赛队伍的编号连续。对于每棵子树,最终只有其胜者组与败者组的冠军参与后续的比赛,所以我们只关注胜者组与败者组的冠军分别是谁。更进一步,其实我们不关注具体的冠军是谁,我们只关注其是否是我们喜欢的队伍。由此,我们大概有一个从子树向父节点合并的思路,但比赛过程并非严格的二叉树所以我们从连续段来考虑。
设状态 \(f_{l,r,0/1,0/1}\) 表示编号 \([l,r]\) 的队伍比完赛胜者组冠军不是/是喜欢的队伍、败者组冠军不是/是喜欢的队伍,最多的包含喜欢队伍的比赛数量。两维 \(l,r\) 肯定是存不下的,但总状态数量是 \(n\times 2^n\),所以可以用编号 \(k\) 代表一个区间。
转移时分讨即可
C.Au Pont Rouge
给出长为 \(n\) 的字符串 \(s\),要求将 \(s\) 分割为 \(m\) 个连续非空子串。问在所有方案中,第 \(k\) 大的 每个方案中的最小子串 是什么。\(n\in[2,1000],m\in [1,1000],k\in[1,10^{18}]\)
查询第 \(k\) 大的问题先考虑二分。
二分前需要给 \(n^2\) 个子串排序。众所周知直接比较两个字符串的复杂度是 \(O(|s|)\),这个复杂度是过不去的,所以可以先求出两个字符串的 LCP 长度,再比较下一位大小。LCP 长度大可以跑 \(n\) 次 Z 函数求出,总复杂度 \(O(n^2)\)。
字符串有序后,需要对于二分的串 \(s'\) 求出划分 \(m\) 个子串,每个子串字典序都大于等于 \(s'\) 的划分方案数。字典序最小的、划分方案数大于等于 \(k\) 的字符串即为最后的答案。
求方案数可以设状态 \(f_{i,j}\) 表示考虑 \([1,i]\) 划分为 \(j\) 段合法子串的方案数,显然有转移 \(f_{i,j}=\sum f_{k,j-1}\times [s_{[k+1,i]}\geqslant s']\),直接转移是 \(O(n^3)\) 的,不可接受。其实可以换个思路,将状态中的前缀换成后缀,此时转移即为 \(f_{i,j}=\sum f_{k+1,j-1}\times [s_{[i,k]}\geqslant s']\)。注意到若 \(S\geqslant s'\),那么 \(S\) 后拼接上任意多的字符都满足上述关系,所以我们可以找到第一个满足 \(s[i,k]\geqslant s'\) 的位置 \(k\),转移时用后缀和转移即可
D.Tourism
有一个 \(n\) 个点的有向完全图,每条边都有边权。要求找到一条以节点 \(1\) 为起点与终点、经过 \(k\) 条边的路径,使得路径不存在基环且边权和最小。输出这个最小的边权和 \(n\in[2,80],k\in [2,10]\)
妙妙。题目像极了广州集训时讲的一道题,解法也像极了。早知道多听点了
路径上最大的限制就是“不存在奇环”。说到奇环怎么能不想到二分图染色?但是这题的染色方案又是个问题。实际上可以随机染色后 DP,DP 复杂度 \(O(n^k)\),所以大可以随个几千次。
因为一条路径上最多 \(k-1\) 个互不相同的点,这几个点的染色方案有 \(512\) 个,几千次还随不到的概率很小,所以基本是能过的

浙公网安备 33010602011771号