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

复盘|第324场周赛

2022-12-23 20:30 作者:UCLmsc  | 我要投稿

统计相似字符串对的数目

【哈希表+位运算】由于只有小写字母,可以用一个整数mask表示字符串中出现过的字母。遍历words 的同时,用一个哈希表 cnt 维护mask 的出现次数。

使用质因数之和替换后可以取到的最小值

【暴力模拟】不断循环,计算 n的质因数之和 sm。如果sm = n说明无法再继续减小 n了,返回 n;否则更新 n 为 sm,继续循环。

添加边使所有节点度数都为偶数

【分类讨论】只有以下几种情况才能满足题目要求,记奇数节点数量为m,m=0,不用添加就满足,m=2,这两个之间没有连接就添加1条边,如果已有边,就枚举其他剩余点,找到与这两个都没有连接的点连两条边。m=4时,记录四个点为abcd(假设位于矩形四个角),横竖斜三种连法。

查询树中环的长度

【LCA + 暴力】环长 = dist(LCA, a) + dist(LCA, b) + 1,利用完全二叉树的性质求LCA(2^k和2^k - 1),可以不断地把大的点val//2,相当于把大的那个点移动到其父节点,直到a == b则找到了LCA,循环次数+1就是环长。

【LCA + 位运算优化】发现节点编号的二进制长度 = 节点深度。深度之差等于小的那个数右移的位数。


复盘|第324场周赛的评论 (共 条)

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