07 2024 档案

一些并查集理解
摘要:对于启发式并查集来说,我们可以使用 O(1) 合并,O(log) 查询,也可以使用 O(log) 合并,O(1) 查询。 假设 siz[pv] < siz[pu]。前者是合并时直接 p[pv] = pu,查询则必须要用 find 函数;后者是合并时遍历 pv 对应集合,将其根都设为 pu。 前者的 阅读全文

posted @ 2024-07-25 02:47 wuhu12345 阅读(15) 评论(0) 推荐(0)

Luogu P8026
摘要:最近补了这道题,感觉对并查集的启发式合并有了更进一步的理解。 这道题个人当时陷入了一个误区,总以为是要从集合的角度去计算贡献的增加量,但 cnt 桶记录的其实是哈希值为 ha 的点数的数量,也就是说,我们需要理解两个点在所有图连通当且仅当两个点的哈希值相等。这很容易理解,两个点在所有图连通时,它们的 阅读全文

posted @ 2024-07-25 02:40 wuhu12345 阅读(32) 评论(0) 推荐(0)

Codeforces Round #956 (Div. 2) and ByteRace 2024
摘要:A 发现输出1~n符合结论 B **猜结论题,直接卡死俩小时,大号卡成小号了(其实还是自己菜唉唉) C 实际上就是把整个数组划成三段,而三个人对这三段的占有情况可以用全排列函数生成一下,如果发现最后的cur大于数组长度就可以标为不合法。 D 卡死B后最后剩了半小时看了下,蛮好做的,但是也挺结论,可以 阅读全文

posted @ 2024-07-08 03:31 wuhu12345 阅读(379) 评论(2) 推荐(0)

Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)E-F
摘要:E 求一条树上的路径,使得走遍整棵树花费最小。 我们容易发现树上的某条简单路径只需走一次,除此之外所有的路径都需要走两次,那么显而易见,我们需要求树的直径,之后将剩余的路径权值和乘二加上直径权值就可以。 F 数学题,对于数学题而言,个人感觉时间复杂度的计算对于题目的求解非常重要,可以达到类似于“放缩 阅读全文

posted @ 2024-07-07 20:40 wuhu12345 阅读(20) 评论(0) 推荐(0)

Educational Codeforces Round 167 (Rated for Div. 2)
摘要:A 容易发现由于玩家是八向移动,-1以及其上的硬币都可以接到,但是往下都无法。 B 子序列不需要连续,子串则必须连续,那么我们可以考虑对子串进行遍历,相当于遍历起点,求出子序列能和其对上的最大长度,然后用子串长度加上子序列的长度减去重合长度即可。 C 赛时C没D出的快,想贪心策略想岔劈了。我们注意到 阅读全文

posted @ 2024-07-07 02:02 wuhu12345 阅读(24) 评论(0) 推荐(0)

导航