BFS
文章平均质量分 52
Crossing over
这个作者很懒,什么都没留下…
展开
-
HDU 3549 Flow Problem
传送门 基础网络流,这次使用一下dinic算法,BFS+DFS BFS负责找一个流量可行(仅关注当前边)的层次图,DFS在层次图基础上找增广路,而边上流量的更新在DFS的回溯过程中负责。上述过程重复直到汇点(sink)在BFS层次遍历后不可达。 DFS可以一次只找一条路(在外部循环调用DFS直到返回值为0);也可以一次找多条路,在DFS内部累加flow,下面代码使用后者。 当前弧优化,每次BFS后...原创 2019-03-10 22:18:34 · 199 阅读 · 0 评论 -
PAT A1004 Counting Leaves(30)
题意 给定家族树(结点总数、非叶节点总数和上下层对应关系),求每层的叶节点数。 注意 输入数据后从根节点递归得到每个节点的层次。(因为某些测试用例不是严格按照树层次输入的,不这样搞会挂掉一些测试点) 单词 pedigree 血统,家谱 hierarchy 层次 fix 固定原创 2017-02-11 01:05:49 · 293 阅读 · 0 评论 -
HDU 1532 Drainage Ditches
传送门 网络流、最大流问题入门,基础的增广路算法(EK),首先定义一下该问题,主要是一个有向图,有两个特殊点-源点和汇点,每条边上有一个容量,在满足两个条件: 为每条边输入一个流量,且流量小于等于容量 以流量来计,源点只有出度,汇点只有入度,其他点入度等于出度 的情况下,尽可能多地往图里面输入流量,求整个图所有边的流量之和的最大值。 该算法的思想就是建图以后,每次在图里面找一条从源点到...原创 2018-06-04 16:53:14 · 162 阅读 · 0 评论 -
HDU 3572 Task Schedule
传送门 作业调度,这道题还真没想到能用网络流。。。。乍一看跟背包问题差不多。 有N个作业,M个机器,每个作业给你一个耗费时间(时间段)以及最早开始时间和最晚完成时间(这两个是时间点),单位是天。一个作业同时只能被一个机器做,一个机器同时也只能做一个作业,但是,可以只做一部分,之后可以切换别的机器做。一部分指的是整数天。 画个图。把数据处理成上面这个图,然后按照最大流求解就ojbk了,看看最后的最...原创 2019-03-13 23:47:28 · 157 阅读 · 0 评论 -
HDU 2732 Leapin' Lizards
传送门 这道题应用了网络流,主要考的是怎么转化为网络流求解,重点是怎么建图。 题意是给你一个n*m网格,每个格子可能有一个柱子,也可能没柱子,每个柱子上有一个最大跳出次数,用完了这个柱子就废了,每个柱子上可能有一个蜥蜴(也可能没有,但只能最多存在一个(不仅初始是这样,过程中也要满足这一点)),蜥蜴的跳跃距离是d,蜥蜴只能从柱子跳到另一个柱子上,两个柱子的距离定义为abs(x1-x2)+abs(y1...原创 2019-03-14 21:06:17 · 178 阅读 · 0 评论 -
HDU 2883 kebab
传送门 有N个顾客,每个顾客需要一些烤串,每个烤串的制作时间不同(一个顾客内是相同的),每个顾客有一个开始时间和截止时间,在小于等于截止时间的时候完成。这个老板可以最多同时烤M串,可以把一个串分为多个不连续的时间段来烤,甚至可以把一个串分为多个部分(根据时间划分)来同时烤(占用多个位置,子串的烧烤时间和分量成正比)。 其实就是有N个任务,每个任务有ni*ti个单位,这些单位随便任意组合(上述那些奇...原创 2019-03-18 22:41:00 · 175 阅读 · 0 评论 -
HDU 3605 Escape
传送门 有N个人,M个星球,有一个N*M的矩阵,表示某个人是否可以去某个星球。问你这些人能不能全安排到这些星球上? 做过了之前的几道题,这道题明显就是网络流了,但是,这道题考了缩点/状态压缩,因为N取值上限太大了,每个人都建一个点会超内存的,考虑M的上限很小(10),对所有人而言,去星球的状态最多2^M = 1<<M种,所以每种状态建一个点就好了(每种状态代表一类人,这类人完全等价)。...原创 2019-03-21 23:17:29 · 172 阅读 · 0 评论