
zoj
文章平均质量分 77
njlcazl
这个作者很懒,什么都没留下…
展开
-
【zoj2760】【最大流】How Many Shortest Path
求一个带权有向图中s-t边不相交最短路最多有几条。 建图方法:分别从源点和汇点作一次dijkstra,然后建一个满足ds[u] + w[u][v] + dt[v] == ds[t]这样的关系的导出子图,这样做是为了保证网络图中任意一条s-t的路都是最短路,每条边的容量都为1,然后做一次最大流就行了。 另外这道题比较坑的地方是:矩阵对角线上的长度不一定为0。。。 代码: #include原创 2013-03-22 08:31:56 · 741 阅读 · 0 评论 -
【zoj2334】【左偏树】Monkey King
题目大意: N个猴子,打了M次架,每次打架的时候双方猴子都会派出自己一方战斗力最高的猴子,打完架后这两只猴子的战斗力都减半。同时,不打不相识嘛,两方猴子打完架后就互相认识变成同伙不会再打架。输出每次打架后通过这次冲突合并的那一伙猴子中战斗力最高的猴子的战斗力值,如果冲突双方在同一伙的话直接输出-1就好。 可以使用并查集来维护两个猴子是否互相认识,并且找出它的根节点,同时也是战斗值最原创 2013-04-18 11:00:36 · 699 阅读 · 0 评论 -
【zoj2112】【线段树套平衡树】Dynamic Rankings
很早以前就想做的一道题。本来想用主席树做的,无奈zoj的开的空间太小,用主席树不优化空间的话会MLE。 用树套树的话不算很麻烦,理解起来也很容易。建一颗线段树,然后对线段树的每个节点建立SBT。 修改的时候递归对线段树的每个节点都删除平衡树中的那个值,再插入新值。 由于平衡树只能求出数的排名,所以查询时二分一个数,查询排名,根据排名迭代出第k大的数。 代码: #include #incl原创 2013-05-05 14:31:57 · 732 阅读 · 0 评论