随笔分类 - 网络流
1
摘要:Marriage Match IV 题意:现在有n城市,m条单向路,现在男生在A城市,女生在B城市,现在男生要从A -> B 去看女生,每条路只能走一次,并且男生很懒,他第一次走的是A -> B的最短路,以后每次走的路都不能超过这个,求 男生从A->B次数最多有多少次。 题解:就是求有多少个不相干的
阅读全文
摘要:Kakuro Extension 题意:现在有一个n*m的矩形,现在每个白色的点都可以填 [1, 9] 中的一个数字。现在要求每行加起来的值等于左边的那个黑块的右值,每列加起来等于上边那个黑块的左值,求合法方案数。 题解:因为每个点至少是1,如果直接建边跑最大流的话会导致某些点的值为0,现在要保证每
阅读全文
摘要:Marriage Match II 题意:有n个男生,n个女生,现在有 f 条男生女生是朋友的关系, 现在有 m 条女生女生是朋友的关系, 朋友的朋友是朋友,现在进行 k 轮游戏,每轮游戏都要男生和女生配对,每轮配对过的人在接下来中都不能配对,求这个k最大是多少。 题解:二分 + 网络流check
阅读全文
摘要:Escape 题解:如果一个人一条边和适应星球连一条流量为1的边,那么结果因为点数太多,边数太多而TLE。现在我们把所有的适应星球状态一样的人放在一起,然后在同一个状态的人的边一起连边,从而减少边数和点数。 代码: 1 #include<bits/stdc++.h> 2 using namespac
阅读全文
摘要:UVA - 10480 Sabotage 题意:现在有n个城市,m条路,现在要把整个图分成2部分,编号1,2的城市分成在一部分中,拆开每条路都需要花费,现在问达成目标的花费最少要隔开那几条路。 题解:建图直接按给你的图建一下,然后呢跑一下最大流,我们就知道了最小割是多少,答案就是最小割了 。 现在要
阅读全文
摘要:Control 题意:有一个犯罪集团要贩卖大规模杀伤武器,从s城运输到t城,现在你是一个特殊部门的长官,可以在城市中布置眼线,但是布施眼线需要花钱,现在问至少要花费多少能使得你及时阻止他们的运输。 题解:裸的最小割模型,最小割就是最大流,我们把点拆成2个点,然后将原点与拆点建边,流量为在城市建立眼线
阅读全文
摘要:Dining 题意: 现在有一个养牛场厂主,他有F种食物,D种水,每种都只有一份。 现在他有n头牛,每种牛需要吃一份食物,一种水,对于每头牛来说 食物都有Fi种选项,水有Di种选项,各自都需要选一种。 现在Q最多有多少头牛可以满足摄入的需求。 建图: 不加思考想到的是关系图,食物和水都指向牛,但是转
阅读全文
摘要:ACM Computer Factory 题意:一个公司有 n 个机器, 现在一个电脑有 p 个组件,每个机器一分钟能够处理Qi个电脑,前p个数代表的是每个位置的零件的状态 0 代表的是进入到这个机器的电脑 这个位置的零件不能存在 1 代表这个位置的零件一定要有,2代表这个位置的零件可以有也可以没有
阅读全文
摘要:HDU-6437 题意:一天有n个小时,现在有m场电影,每场电影有一个愉悦值,有k个人,电影分2种类型A, B, 并且每一场电影只能一个人看, 一个人可以看无数次电影, 只要时间足够, 但是连续看同一种电影会减少愉悦值W点。现在要求所有人总的愉悦值加起来最大。 题解: 网络流建图,先把每个点拆成2个
阅读全文
摘要:1. 最大流 const int N = 200; const int M = N*N; int head[N], deep[N], cur[N]; int w[M], to[M], nx[M]; int tot; void add(int u, int v, int val){ w[tot] =
阅读全文
摘要:整数规划 原来的km+hunger跑法T了, 拿了一个新的板子, 新的写法是将这原来的找新的最小的d放在了上一次的残留图上,从而减小复杂度, 但是个人还不是很理解为什么最小的d下一次出现的位置一定是这次出现的位置的对应的x的点。 复杂度:n^3 代码: 1 #include<bits/stdc++.
阅读全文
摘要:题意: 白兔有n个仓库,每个仓库有啊ai个货物,在每个仓库白兔可以装上任意数量的货物,也可以卸下任意数量的货物,现在有k个圆形信号阻隔器,然后有m个顾客下个一个订单,每个顾客的收货量有一个上限, 在每个订单中,白兔都会走过si个仓库, 从s[0] 按(输入)顺序依次遍历所有仓库, 当白兔遍历完所有仓
阅读全文
摘要:Kejin Game 题意:一个人有一颗技能树, 现在它想修练到某个技能 (假设为x), 现在修一个技能有3种方式: 1, 将该技能的前置技能都学完了,才能学该技能。 2, 取消一个技能 与 另一个技能的前置关系, 也就是说修该技能的时候不需要先修取消了关系的前置技能。 3,无视前置关系, 直接修某
阅读全文
摘要:The Problem Needs 3D Arrays 题意:给你n个数, 然后1-n的数, 然后要求按顺序选出m个数, 求 逆序数/m 个数的 最大值是多少。 题解:裸的最大密度子图。逆序的2个数建边, 跑一下最大密度子图就AC了。 1 #include<bits/stdc++.h> 2 usin
阅读全文
摘要:POJ-3155 一道裸的最大密度子图的题目。 代码: 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 using namespace std; 5 #define Fopen freopen("_in.txt","r",stdi
阅读全文
摘要:SGU 194 Reacor Cooling 原理: 传送门 无源汇有上下界限制的网络流 题意:给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流躺物质。并且满足每根pipe一定的流量限制,范围为
阅读全文
摘要:HDU-1853 题意:有n个城市, m条单向路, 这个路有长度, 现在需要将这n个城市分成几个环, 这几个环不能有相交的城市, 求出最小的总长度。 题解:在一个单项环中,每个城市都只会被一条路指到,所以用KM算法跑出最小费用就好了。 注意的就是题目会给出重边。 代码: 1 #include<bit
阅读全文
摘要:hdu 2255 费用流的模板题。 就是用KM跑一下最优匹配就好了。 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen freopen("_in.txt","r",stdin); freopen("_out.tx
阅读全文
摘要:Going Home 题意:给你一张图,图上有若干个人和若干个屋子,现在要使的这若干个人都进到屋子里,并且一个屋子只能进一个人,求总步数最小。 题解:最小费用流。将图转化成边的关系,然后求解。 代码: 1 #include<bits/stdc++.h> 2 using namespace std;
阅读全文
摘要:HDU-1532 题意简单的来说就是从1点到n点,最大的流量是多少。 代码: Dinic 还可以用当前弧优化,记录了当前处理到那一条边,就不需要重头再遍历那些l边。 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen fr
阅读全文
1

浙公网安备 33010602011771号