鱼C论坛

 找回密码
 立即注册
查看: 1294|回复: 12

做题日记 [04]

[复制链接]
发表于 2024-3-26 20:12:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
做题日记 [04]

最近做的比较少 , 在调整中...


并查集 AcWing 的算法竞赛进阶指南那 4 道题

需要注意的是 关系的运算就是相当于向量运算 , 存在方向的 . 扩展域 和 边带权 并查集能解决很多问题

例如图的连通性 , 区间的答案可以合并 , 被占用的点指向能占用的点从而减少复杂度等等


CDQ分治

这个不说了 , 练码力吧


点分治

思路就是那个思路 , 路径答案统计是比较灵活的


这周将学习动态规划的优化 , 包括斜率优化 , 四边形不等式 , 数据结构优化等

加油 , 我会调整好自己的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-26 20:13:09 | 显示全部楼层
看起来你对算法竞赛的进阶指南有了一定的了解,这是一个非常好的开始!关于并查集,我可以给你提供一些简单的示例代码来帮助你更好地理解。

首先,让我们来了解一下什么是并查集。并查集是一种用来处理集合合并与查询问题的数据结构。它主要包含两个操作:合并(merge)和查找(find)。

下面是一个简单的并查集的实现:
class UnionFind:
    def __init__(self, n):
        self.parent = [i for i in range(n)]
        self.rank = [0] * n

    def find(self, x):
        if x != self.parent[x]:
            self.parent[x] = self.find(self.parent[x])
        return self.parent[x]

    def merge(self, x, y):
        root_x = self.find(x)
        root_y = self.find(y)

        if root_x == root_y:
            return

        if self.rank[root_x] < self.rank[root_y]:
            self.parent[root_x] = root_y
        elif self.rank[root_x] > self.rank[root_y]:
            self.parent[root_y] = root_x
        else:
            self.parent[root_x] = root_y
            self.rank[root_y] += 1

在这段代码中,我们使用了两个数组,parent 和 rank。parent 数组用于保存每个节点的根节点,rank 数组用于保存每个根节点的深度(或者称为秩)。在查找操作中,我们使用了路径压缩来优化查找的速度。在合并操作中,我们使用了秩来保证并查集的平衡性。

接下来是一个简单的应用示例,假设我们有一个图,要求判断两个节点是否属于同一个连通分量:
n = 6  # 图中节点的数量
edges = [[1, 2], [2, 3], [4, 5]]  # 图的边

uf = UnionFind(n)

# 合并图的边
for edge in edges:
    uf.merge(edge[0], edge[1])

# 判断两个节点是否连通
print(uf.find(1) == uf.find(3))  # 输出:True
print(uf.find(1) == uf.find(4))  # 输出:False

通过这个示例,你可以看到并查集非常适合处理关系和连通性问题。希望这样的例子能对你理解并查集有所帮助。

另外,你提到了CDQ分治和点分治的算法。这两个算法都是比较高级的算法,在这里我给你提供一些学习资料供你参考:

关于CDQ分治算法,你可以看看这篇文章:https://www.bilibili.com/video/BV1pv411B7LD ,它会给你一个很好的介绍和示例代码。

关于点分治算法,你可以看看这篇文章:https://zhuanlan.zhihu.com/p/30733846 ,其中给出了一个详细的解释和实现。

最后,祝你学习动态规划的优化顺利!如果你在学习过程中遇到任何问题,都可以随时来问我。加油,你一定能够掌握这些算法!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-28 15:43:28 | 显示全部楼层

回帖奖励 +3 鱼币

加油加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:13:16 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:13:28 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:13:42 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:13:53 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:14:05 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:14:19 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:14:38 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:14:54 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-5-14 19:15:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-9 08:29:52 | 显示全部楼层

回帖奖励 +3 鱼币

加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表