随笔分类 - acm-图论-网络流
最大流、最小割、费用流
摘要:题意 给定个人,每个人属于一所大学,擅长一个学科,拥有一个能力值。 考虑从个人中选出一部分人组建一个队伍,如果这个队伍是梦之队,则需要满足如下条件:队伍中任何两个人学校不同,擅长学科不同。 令为梦之队中最大可能的人数,对任意$i = 1, 2, \do
阅读全文
摘要:题意 有若干个人在数轴上跑步,每个人可能往左跑,也可能往右跑,但是方向不能变。速度是 现在给定个报告,每个报告给出时刻在位置有人经过。 问至少有多少个人在跑步。 思路 注:坐标旋转公式: \[
阅读全文
摘要:题意 思路 这道题与取方格数那道题如出一辙,唯一需要改变的就是不能通过的格点需要跳过。 这道题输出方案有点麻烦,这里有一个技巧就是只看上一个格子的出点与下一个格子的入点之间的边,如果这条边的反向边有流量那么可以走,并顺便将其减 代码 #include <iostream> #includ
阅读全文
摘要:题意 给定一张航空图,图中顶点代表城市,边代表两个城市间的直通航线。现要求找出一条满足下述限制条件的且途经城市最多的旅行路线。 从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市)。 除起点城市外,任何城市只能访问 次。 对于给定的航空图
阅读全文
摘要:题意 假设有根柱子,现要按下述规则在这根柱子中依次放入编号为的球。 每次只能在某根柱子的最上面放球。 在同一根柱子中,任何 个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在 根柱子上最多能放多少个球。 思路 典型的最小路径点覆盖
阅读全文
摘要:题意 有个项目需要 天才能完成,其中第 天至少需要 个人。 一共有 类志愿者可以招募。其中第 类可以从第 天工作到第 天,招募费用是每人 元。 求能招募足够的志愿者的最少费用。 数据保证一
阅读全文
摘要:题意 一个餐厅在相继的 天里,每天需用的餐巾数不尽相同。假设第 天需要 块餐巾 ()。 餐厅可以购买新的餐巾,每块餐巾的费用为 分;或者把旧餐巾送到快洗部,洗一块需 天,其费用为 分;或者送
阅读全文
摘要:题意 在一个的矩形网格中,每个格子里都写着一个非负整数。 可以从左上角到右下角安排条路线,每一步只能往下或往右,沿途经过的格子中的整数会被取走。 若多条路线重复经过一个格子,只取一次。求能取得的整数的和最大是多少。 思路 这道题与数字梯形那道题的第三问很像,区别在于数字梯形是个
阅读全文
摘要:题意 思路 第一问 这条路径中,每个点只能使用次,每条边也只能使用次,获益为经过点的点权和。 这里的费用不是边的费用,而是点的费用,因此可以采用拆点的技巧,即拆成一个入点和一个出点,入点与出点连边,容量是(因为每个点只能使用一次),费用是点权。 设立虚拟源点,与第一行的
阅读全文
摘要:题意 有 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。 如何用最少搬运量可以使 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。 数据保证一定有解。 思路 这道题与运输问题有一些相似点。可以将这些仓库分成两类,一类是比最终数量多的仓库,另一
阅读全文
摘要:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N = 5010, M = 100010, in
阅读全文
摘要:题意 给定一张无向图,求最少去掉多少个点,可以使图不连通。点数 思路 这里引用李煜东《算法竞赛进阶指南》给出的方法。 若无向图不连通,则图中必有两个点不连通,但这两个点是未知的。因此可以枚举源点和汇点,然后求去掉多少个点可以使得和不连通。答案为各次中的最
阅读全文
摘要:题意 有个实验,和种器材。 每个实验都需要若干种器材,做一个实验可以获得的收益,配置一个器材需要花费 问做哪些实验,可以获得最大收益。 思路 最大获利的推广版,最大权闭合图模板题 代码 #include <iostream> #include <cstdio> #in
阅读全文
摘要:题意 思路 首先可以发现两个性质: 只有在偶数秒才可以拿宝石 相邻格子的宝石不能都拿到 根据这两条性质,可以发现这是一个二分图最大独立集问题。 对网格构建二分图,即横纵坐标之和为奇数的格点与源点连容量是宝石价值的边,汇点与横纵坐标之和为偶数的格点连容量是宝石价值的边。 横纵坐标之和为奇数
阅读全文