HDU3549 最大流入门
第一次写 EK,写了一个晚上没有什么大的进展,仔仔细细研究了一下论文,自己想了 BFS 找增广路的过程,写了一个邻接矩阵版的 EK 交上去,居然只跑了 30 多毫秒,不知道什么情况。。。。
第一次写 EK,写了一个晚上没有什么大的进展,仔仔细细研究了一下论文,自己想了 BFS 找增广路的过程,写了一个邻接矩阵版的 EK 交上去,居然只跑了 30 多毫秒,不知道什么情况。。。。
这算是很经典的多模式串多原串的题目了,匹配的复杂度是 O(n) 的,这样,直接上自动机,注意判重另外开一个 vis 变量表示第 turn 趟是否访问过此结点即可。
运用静态分配内存,跑了 156ms。
这题做的囧死,看了样例很兴奋的写了个 dijkstra 交上去 WA,重新看了下题目,发现是每条路都有一个最大承载量,好吧,我又想错了,发现不是网络流,因为样例用最大流说不通,再仔细看了一遍题目,发现是叫你找一条路使得单条路的流量最大,果断写了个最大生成树,觉得最大生成树的最小边就是解,叫上去,再次 WA。
想了一会儿才发现不对,如果有一条路流量很大,但是这条路建出来的时候生成树没有建好呢?后来在 Kruskal 函数里加了一句很重要的话,果断 AC。。。。。
本题的思路就是求最大生成树,当 1 和 n 在一个集合里的时候就返回最小边权,这个边权就是解。
简单的平衡二叉树题,支持三个操作,插入、查询最值、删除,在结构体中用到了运算符重载,为了编码方便,如果不用重载,应该会跑得更快。
这题 Dancing Links 写的好纠结,二分写挂了一次。
这题的思路是预处理出所有点对的距离,然后进行对半径二分,跑重复覆盖即可。
注意二分的时候不能对距离二分,那样会超时,我们考虑极限情况,也就是消防队恰好可以到达某一房子,也就是距离相等时的情况,这样,我们就维护一个 que 数组表示可以选到的距离,对此进行二分。