SGU
文章平均质量分 86
AC_Arthur
Die luft der Freiheit weht
展开
-
SGU 210. Beloved Sons(二分图匹配)
题目链接:点击打开链接思路:因为每一个左边的匹配点都有一个优先级, 所以我们按照左边的点的优先级排序, 这样就会优先匹配前面的点。 原因很简单 , 我们只要知道匈牙利算法是怎么进行的就可以了: 我们依次枚举每一个左边的点, 对于一个左边点x, 找到一个右边点y, 如果y没有被匹配, 那么(x, y)就是一对新匹配, 如果y已经匹配了x`, 那么我们尝试为x`重新找一个匹配点, 如果找到了那么原创 2016-06-07 22:31:10 · 1701 阅读 · 0 评论 -
SGU 311. Ice-cream Tycoon(平衡树)
题目链接:点击打开链接思路:最简单的思路是, 维护一棵平衡树, 以单价作为键值, 维护一个结点个数的信息。 然后类似寻找第K小的方法找到第n个小的价值处, 顺便维护总价值, 判断是否happy。然后就是删除操作。 我们从新从根结点开始, 沿路删除可以删除的子树就行了。 由于每次删除都是删除的叶子结点处, 所以不需要旋转操作。细节参见代码:#include #include原创 2016-07-10 20:53:48 · 1606 阅读 · 0 评论 -
SGU 507 Treediff(平衡树)
题目链接:点击打开链接思路:我们要求叶子结点的值相差最小, 那么这是一个大小关系, 我们可以维护一棵平衡树, 这样, 对于每一个数, 和他相差最小的情况只能是他相邻左边或右边。但是如果开n棵平衡树, 复杂度高达n^2logn,还不如n^2暴力来的快。 我们可以采用一种叫做: 启发式合并 的技巧。 每次将一棵比较小的树合并到一棵比较大的树上。 使得复杂度达到nlogn, 证明也很简单:考原创 2016-08-23 21:09:28 · 947 阅读 · 0 评论 -
SGU 210. Beloved Sons(二分图匹配)
题目链接:点击打开链接思路:本题可以用网络流来解, 从源点向每个王子连一条容量为国王喜爱程度的边, 每个王子向每个他喜欢的女孩也连一条容量为喜爱程度的边, 每个女孩向汇点连一条容量INF的边。一个更简单的方法是: 考虑匈牙利算法从1~n, 一定会尽量满足前面的人, 所以我们只需要按照国王对王子的喜爱程度排序之后做匈牙利算法即可。细节参见代码:#include#include原创 2016-09-06 22:11:30 · 530 阅读 · 0 评论