摘要: 题目链接: "运输问题" 当然可以写KM了对吧 但是写费用流也是一样简单啊 不管那边都是模板啊 c++ include include include include include include include include include using namespace std; defin 阅读全文
posted @ 2018-12-27 00:09 EncodeTalker 阅读(105) 评论(0) 推荐(1) 编辑
摘要: 题目链接: "火星探险问题" 这一题类似于深海机器人问题 唯一的区别是这一题的资源不再位于边上而位于点上,由于资源只能开采一次所以需要考虑拆点 接下来就和那一道问题一样了 接下来又是~~喜闻乐见~~的输出方案了 我们从源点出发,每一次dfs向东走还是向南走,记录一个当前枚举方案时的流量,当某条边的记 阅读全文
posted @ 2018-12-27 00:06 EncodeTalker 阅读(144) 评论(0) 推荐(1) 编辑
摘要: 题目链接: "骑士共存问题" 这道题其实代表了一类问题——在二维坐标平面上的网络流问题 我们首先要用一个数来代表一个特定的点 然后建边还是很显然的——根据攻击关系建边 但是这类问题还要注意一点——减少重边 一般我们会以奇数(或偶数)建边,即源点$s$连向所有用奇数表示的点,奇数点又向偶数点连边,偶数 阅读全文
posted @ 2018-12-26 23:56 EncodeTalker 阅读(108) 评论(0) 推荐(1) 编辑
摘要: 题目链接: "航空路线问题" 由题目中的“每一个城市最多经过一次”可知需要拆点 在根据所求经过城市数最多将城市拆成的边的容量设为1,费用设为1 同时以$n$为汇点,源点到1和1中的两点的容量均设为2 再将原图中的边的容量设为$INF$,费用为0 跑最大费用最大流 输出方案的话,从1开始dfs出两条路 阅读全文
posted @ 2018-12-26 23:39 EncodeTalker 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "软件补丁问题" 这一题还是能看出是网络流的,但是状压+spfa更为方便(因为就算硬上网络流的话流量基本上都是1) 直接将题目中所给的四种状态状态压缩,即一开始的状态为全1(全部都是bug),目标状态是0 注意位运算的优先级 c++ include include include inc 阅读全文
posted @ 2018-12-26 23:31 EncodeTalker 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "飞行员配对方案问题" 很多人把这题当做二分图匹配的模板做,匈牙利的时间复杂度为$O(nm)$ 但是如果用dinic去做时间就会是$O(\sqrt nm)$ 建立超级源点$s$和$t$,直接按照输入连边,源点和汇点分别连向一个点集即可 c++ include include includ 阅读全文
posted @ 2018-12-26 23:27 EncodeTalker 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "魔术球问题" 首先明确了“每个球只能被用一次”这个条件,我们就要考虑拆点了 接下来我们一个一个枚举球,对于当前枚举到的球考虑它和之前的球是否有连接关系,若有则将它们连起来 然后跑最大流,当我们在残量网络中跑出的最大流不为0时,就说明新球可以与之前的一根柱子建立对应关系(他可以通过之前的 阅读全文
posted @ 2018-12-24 10:38 EncodeTalker 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "深海机器人问题" ~~出题人的语文是要拎出去枪毙的~~ 大意就是给了一些机器人的起点和终点,然后在网格图上每一条边都有一个收益,走过这条边就会有一个收益,但这个收益只能被获得一次,求最大收益 考虑使用费用流 很明显这是一个多个源点和多个汇点的题目,所以我们建一个超级源点和超级汇点并连容 阅读全文
posted @ 2018-12-24 10:30 EncodeTalker 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "codeforces 997C.Sky Full of Stars" 一道很简单(?)的推式子题 直接求显然不现实,我们考虑容斥 记$f(i,j)$为该方阵中至少有$i$行和$j$列为相同颜色的情况 那么显然有$ans=\sum_{i=0}^n \sum_{j=0}^n C_n^i C 阅读全文
posted @ 2018-12-21 10:59 EncodeTalker 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "codeforces553C Love Triangles" 我们来看一下对于一个合法三角形可能出现的边 我们发现,在确定了两边之后,第三条边是什么也就随之确定了 我们用$1$表示$love$,用$0$表示$hate$ 那么$111 11,1$ ​ $100 \ 00,1/10,1$ 阅读全文
posted @ 2018-12-19 22:40 EncodeTalker 阅读(189) 评论(0) 推荐(0) 编辑