YunYan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2020年4月8日

摘要: 这是一个非常经典的带权并查集,有两种写法。 1 边权并查集 规定一下,当x和y这条边的权值为0时,表示x和y是同类,当为1时,表示x吃y,当为2时,表示x被y吃。 一共有三种状态,如图,当A吃B,B吃C时,C必须吃A,路径压缩后,A被C吃。 然后就是带权并查集的模板了。 判断条件,当x和y在同一颗树 阅读全文
posted @ 2020-04-08 21:55 Target--fly 阅读(245) 评论(0) 推荐(0) 编辑

摘要: 关于带权并查集,到目前为止,基本上可以分为两类,一种是点权,另一种是边权,顾名思义,就是把权重加在点上或者边上。 1 点权。点权并查集的操作是在unite中操作的,在并查集中我们想要维护的值一般都在根上,比如说要维护一树上的最大值。 因为我们维护的最大值信息都在跟上,左边那颗树根RA保存了树1的最大 阅读全文
posted @ 2020-04-08 16:22 Target--fly 阅读(227) 评论(0) 推荐(0) 编辑

摘要: 点权并查集的反向离线操作 题目大意:有n个stars,每一个都一定的“颜值”。然后stars与stars之间可以相连,query c表示再与c相连的stars中,颜值比c高的,stars的标号,如果有多个, 输出最小那一个。destroy x y,表示将x和y这条边销毁掉。 题解:并查集只能加边不能 阅读全文
posted @ 2020-04-08 15:41 Target--fly 阅读(138) 评论(0) 推荐(0) 编辑

摘要: 题目大意:n个物品,每个物品有一定的保质期d和一定的利润p,一天只能出售一个物品,问最大利润是多少? 题解:这是一个贪心的题目,有两种做法。 1 首先排序,从大到小排,然后每个物品,按保质期从后往前找,找到第一个没被占用的日期,然后出售。 code: #include<cstdio> #includ 阅读全文
posted @ 2020-04-08 11:50 Target--fly 阅读(142) 评论(0) 推荐(0) 编辑

摘要: 例题: poj 1308 题目大意比较简单,对任意两个点,有且仅有一条道路,也就是一棵树。 题解:一棵树中,肯定是不能有环的,而且只能由一个根节点。(没认真读题,只知道在那里判环。。。。),所以这个题先判环然后就是判根节点的唯一性。 //#include<bits/stdc++.h> #includ 阅读全文
posted @ 2020-04-08 10:32 Target--fly 阅读(151) 评论(0) 推荐(0) 编辑