摘要: 上下界费用流阅读全文
posted @ 2018-01-17 20:46 Ren_Ivan 阅读(4) 评论(0) 编辑
摘要: 二分最小割。 一个答案可行要满足$ v-c*ans \leq 0 $ 将S向每个点连边,流量为该点权值,相邻两个点连边,流量为边的费用*ans,边界上的点向边界外面连边,流量也为相应费用*ans。 可以发现,每一种割完连到S的点都是选了的点,选了的点和未选的点中间的边的费用一定割了,未选的点的权值也阅读全文
posted @ 2018-01-16 16:51 Ren_Ivan 阅读(6) 评论(0) 编辑
摘要: 我们首先跑一遍最大流。 可以发现如果一个流没跑或者没有跑满,他肯定不再最小割中。如果没跑,那么去掉它之后新图的最小割依然等于最大流,所以割他没有用,而没有跑满的边可以看作是一个满了的边和一个空的边,割了就是浪费了他多余的流量。 那么如果一个边跑满了呢? 对于残留网络缩点,如果$id[u]!=id[v阅读全文
posted @ 2018-01-16 11:24 Ren_Ivan 阅读(5) 评论(0) 编辑
摘要: 网络流,我竟然没想出来黑白染色!!! 黑白染色,发现黑的增加量一定等于白的增加量,设最后格子里的数为$x$,那么$x*num1-sum1=x*num2-sum2$ 如果$num1=num2$, 如果$sum1!=sum2$,无解, 否则易证若$x1$有解,任意$x>x1$均有解。 如果$num1!=阅读全文
posted @ 2018-01-15 21:19 Ren_Ivan 阅读(3) 评论(0) 编辑
摘要: 查询可以直接线段树维护,修改呢,考虑一颗替罪羊,每个点代表一段区间,他的$val$就是区间中值,线段树记录对应节点的$id$,再开一个数组记录即时的权值,因为重建时$val$可能会变。这好像是重量平衡树的应用,然而究竟什么是重量平衡树呢? 1 #include<cstdio> 2 #include<阅读全文
posted @ 2018-01-15 13:25 Ren_Ivan 阅读(7) 评论(0) 编辑
摘要: 替罪羊套$01Trie$ 一看就是傻逼树套树,后来一直$MLE$,发现有内存没删干净。删了之后$TLE$,$Trie$重载$new$和$delete$了就快的飞起了。 1 #include<cstdio> 2 #include<iostream> 3 #include<vector> 4 #defi阅读全文
posted @ 2018-01-15 13:20 Ren_Ivan 阅读(3) 评论(0) 编辑
摘要: 如果这棵树不变的话,就是一个裸的点分树套平衡树,式子也很好推$di+dj<=ri+rj$,$ri-di>=dj-rj$ 平衡树维护$dj-rj$,然后查$ri-di$的$rank$即可。 但是点分树如果极度不平衡也就没有什么意义了。所以利用替罪羊树的思想,当某个子树极度不平衡时,就重新找重心,重建点阅读全文
posted @ 2018-01-12 17:31 Ren_Ivan 阅读(15) 评论(0) 编辑
摘要: 动态点分治的题都这么恶心的吗 思路倒是比较简单,点分树上每个节点维护子树到他的权值和,到他父亲的权值和,以及点权和。 发现查询的是带权重心,于是每次查到一个点,就在他原树的儿子中找一个比他优的,走到那边的点分树上的儿子,没有比他优的话答案就是他。 一开始一直以为知道父亲的答案,儿子的答案可以$log阅读全文
posted @ 2018-01-08 18:04 Ren_Ivan 阅读(12) 评论(0) 编辑
摘要: 动态点分治,建出点分树。每个点维护每个子树黑点到其的距离$max$的一个堆,那么怎么维护呢,对于他的儿子,要维护其子树所有黑点到其父亲的距离的堆,然后$maintain$就可以了。最后再维护一个全局答案的堆就好了。 修改的时候真恶心。 1 #include<cstdio> 2 #include<cs阅读全文
posted @ 2018-01-07 18:33 Ren_Ivan 阅读(18) 评论(3) 编辑
摘要: 式子的推导网上有很多dalao写的都很好,就不再赘述了。 有两点是我没有想到的,再次写一下。 首先就是初始的式子。不知道直角三角形斜边上整数点个数=gcd(a,b)+1,更没有拓展到多维。 第二就是划出来60分的式子之后的优化,把后边的关于T的多项式的系数通过O(n2)时间算了出来$O(n^2*m)阅读全文
posted @ 2018-01-06 10:46 Ren_Ivan 阅读(10) 评论(0) 编辑
摘要: 真的是动态树好题,如果把每个点的父亲设成p[x],那么建出来图应该是一个环套树森林,拆掉一条边,就变成了动态树,考虑维护什么,对于LCT上每个节点,维护两组k和b,一组是他到他父亲的,一组是他LCT子树中深度最深的点到深度最浅的点的父亲的k和b,查询时只需查询一颗树中sf到自己的k和b,判断是否有唯阅读全文
posted @ 2018-01-06 10:41 Ren_Ivan 阅读(5) 评论(0) 编辑
摘要: Day -1 晚上被dg谈了谈人生,没有卵用 Day 0 早上又被老吕教训了一遍,想打板子,打印机还坏了,老吕又奶了一波题,后来发现一个都没中。之后就出发了,中午吃了点肯德基,妈妈来了,给我了个小袋子,说祈福了,让我随身带着,后来发现果然没什么用。火车上和yzh颓了一会小游戏,又睡了一会,还和邻座的阅读全文
posted @ 2018-01-05 21:46 Ren_Ivan 阅读(34) 评论(0) 编辑
摘要: 如果要用矩阵树的话是无法限制公司个数的,发现数据范围十分小,于是考虑容斥,最后答案就等于$n-1$个公司的方案数-$n-2$个公司的方案数+$n-3$个公司的方案数$...$,然后跑矩阵树就好了。 1 #include<cstdio> 2 #include<cstring> 3 #include<i阅读全文
posted @ 2018-01-03 21:52 Ren_Ivan 阅读(7) 评论(0) 编辑
摘要: 没想那么多,直接上了$Matrix-Tree$ 上网一搜,发现有结论,最终结果是树当且仅当有一个五边形被删了两条边且一条在中心环上,剩下的五边形各删一条边,所以是$n*4*5^{n-1}$ 好有道理,本来说T了的话打表呢,结果过了,好尴尬。 1 #include<cstdio> 2 #include阅读全文
posted @ 2018-01-03 21:14 Ren_Ivan 阅读(9) 评论(0) 编辑
摘要: 变形的$Martix-Tree$定理 发现我们要求的是$\prod_{i \in E}{p_{i}} * \prod_{i \notin E}{(1-p_{i})}$ 然后呢? 矩阵树对重边也有效对吧。考虑带权图,发现建出来的矩阵的任何一个$n-1$阶主子式的行列式的值都是其所有生成树的边权之积的和阅读全文
posted @ 2018-01-03 20:54 Ren_Ivan 阅读(8) 评论(0) 编辑