UOJ NOI Round #6

发布时间 2023-09-26 22:27:02作者: 音街ウナ

没什么好说的,一题不会。

D1T1. 面基之路

考虑瓶颈在于最后一个网友的面基时间。

Trick:可以看作 所有网友都在同一时间(显然一定也是同一位置)面基,因为各个网友和 hehe 桑本人都是独立行动,而且可以原地不动

也就是求一个最快的集合点(包括顶点和各边的中点)。直接边转点,枚举最短路之和最小的点即可。

D1T2. 机器人

题意:给出其一个长度为 \(n\) 的(不一定合法的)括号序列,求任意插入 \(t\) 对括号,形成的最终串的方案数。\(n\le 300\)

实际是双序列匹配类型的 DP,设出两维 \(i,j\) 表示插入 \(i\) 对括号的串和原串的前多少位相匹配的方案,这里只需要后者是前者的子序列。

然后这个计数的去重是大问题,因为不能暴力枚举新加的右括号和之前的匹配,否则子问题会变成区间 DP。但是任意匹配显然是可能算重的。

仔细考虑重复的原因,发现就在于虽然加入了 \(t\) 对括号,但是也可能最后一些是和 原串中 的括号匹配。

考虑贪心转移来防止重复,记录多一维状态 \(k\) 表示多出多少个左括号,考虑加入一对括号的转移:

  1. 若之前有没有被匹配的 新加入 左括号,或者决定新加入的左括号与它是 连续的,右括号匹配之并减小 \(k\) 转移。

  2. 要么尝试让右括号和原串匹配。即预处理一个 \(p_i\) 表示 原串中\(i\) 开始向前扫描的第一个没有匹配右括号的左括号位置。

  3. 否则让新加入的两个括号匹配。

D1T3. 稳健型选手

猫树分治 适用于:区间信息 难以多次合并,容易单次合并,容易首尾插入