欢迎光临散文网 会员登陆 & 注册

复盘|LCP2022FALL战队赛

2023-01-09 20:30 作者:UCLmsc  | 我要投稿

LCP 66. 最小展台数量

【哈希表】记录每个字母的最大值即可,结果为所有字母最大值的和。注意到Counter本质上表示的是一个多重集,用 | 可以计算并集。

LCP 67. 装饰树

【DFS】按题意递归即可。

LCP 68. 美观的花束

【双指针】如果一个区间是美观的,那么这个区间的子区间也是美观的,枚举区间右端点,去看左端点最远(最小)是多少,那么[l, r] [l + 1, r] [l + 2, r] ... [r, r]都是合法的,右指针移动时,左指针不会左移。

LCP 69. Hello LeetCode!

【状压DP】1.用位运算表示字母选择情况,由于一个字母可以选多个,因此要对二进制分区,每个区域表示对应字母的个数。2.写一个记忆化搜索,f(i, mask)表示从第i个单词开始选,已经选择的单词为mask时,后续消耗代币的最小值。枚举words[i]的所有合法选择方案转移到f(i+1,mask)。3.因此需要预处理每个words[i]的每种选择字母的方案所消耗的代币的最小值,由于字符串很短,直接写个暴搜即可。

LCP 70. 沙地治理

【找规律】可证最少需要⌊(n^2 + 3n + 2) / 4⌋个三角形。

LCP 71. 集水器

【并查集】1.判断能否容纳水:第i行的水,在不走到第i-1行的前提下,无法触及左、右、下边界。2.转换成连通性问题,用并查集处理。3.为了方便判断是否触及边界,还需要在左、右、下各加一条格子。4.根据1,我们可以从最后一行往上计算。5.用并查集合并当前行各个区域,以及边界。6.如果合并完了,枚举当前行的各个区域,如果不和边界相连,那么该区域能容纳水。7.边界、最上面一层和超级汇点0相连。8.最后判断的时候,如果该区域能容纳水,且和超级汇点相连,那么不是闭合区域,就真的有水。9.统计真的有水的格子,即为答案。10.代码实现时,把每个格子划分四个区域,相对两个区域,代码写起来要容易一些。


复盘|LCP2022FALL战队赛的评论 (共 条)

分享到微博请遵守国家法律