摘要: 树链剖分 线段树维护区间最小值,区间最大值 更新,对于每一个区间,找到当前区间的最小值的最大值,和要更新的值比较,如果比最大值还大,则此数对于以后的询问无任何贡献,直接返回即可,若有贡献,则一直递归到叶子节点,将最值全部更新 询问,直接询问区间最小值即可 /* Alice 和 Bob 在玩一个游戏。 阅读全文
posted @ 2016-04-12 19:01 117208 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 题目大意:n个点,求第k远的点对的距离 KD树裸题 注意要用堆维护第k远 #include<bits/stdc++.h> #define ll unsigned long long #define maxn 100010 using namespace std; inline int read(){ 阅读全文
posted @ 2016-04-12 12:14 117208 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一个无向图,求所有点对不同的最小割种类数 最小割最多有n-1个,这n-1个最小割构成一个最小割树 分治法寻找n-1个最小割。对于当前点集X,任选两点为ST做最小割,然后找出与S相连的所有点和与T相连的所有点构成S集与T集,更新S集与T集的最小割。然后递归处理两个集合。 最后将最小割排序,找 阅读全文
posted @ 2016-04-12 10:38 117208 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定n个数字以及每个数字的个数和权值,将满足条件的数字配对,使得总代价不小于0,且配对最多 最大费用最大流拆点,对于每个点,连一条由S到该点的边,容量为b,花费为0,再连一条到T的边 对于每个合法的配对,连一条容量无穷,费用为ci*cj的边 跑最大费用最大流即可 #include<bits 阅读全文
posted @ 2016-04-12 09:56 117208 阅读(281) 评论(0) 推荐(0) 编辑