UVALive - 5843 Furniture Factory

对每个时间点添加到终点流为工人数量,从起点对每个工作添加流为所需时间,对工作的时间点添加流为1. 网络流#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> ...

2015-08-15 14:01:26

阅读数:404

评论数:0

URAL - 1949 The Best Picture in the Galaxy

传送门:http://acm.timus.ru/problem.aspx?space=1&num=1949 题意 : k 个学生去看n个电影,每个电影有自己的开始时间,结束时间和女演员数目,并且,要保证一个学生同时不能看两场电影,其次,学生看的第i+1个电影的女演员数目要不小于他看的第i...

2015-08-15 13:59:20

阅读数:436

评论数:0

UVALive - 6322 The Swapping Game

题意:给一个串以及串中每个字符可以交换的字符是谁,然后一次只可以交换两个字符, 可以交换零次或者多次。求合理的字典序最小的字符串 input:T -〉有多少组数据,初始串str, 接下来n(n = |str|)行,第i行表示第str中第i个字符可以替换成哪几个字符, output: 如果没有一...

2015-08-15 13:48:07

阅读数:225

评论数:0

zoj Islands

可以用JAVA BigInteger 但是要注意 BigInteger 的类方法中取余有两个方法一个是 mod, 一个是remainder 对于方法mod当余数是负数时会抛出异常, 而remainder 就会正常得出余数import java.math.*; import java.util.*;...

2015-04-14 00:06:34

阅读数:180

评论数:0

Control

拆点,求最小割 最小割定理, 求最大流 #include #include #include #include #include using namespace std; #define inf 1000000000 #define MAXN 10000 struct ...

2015-04-03 00:25:28

阅读数:165

评论数:0

Food

#include #include #include #include #include using namespace std; #define inf 1000000000 #define MAXN 11555 struct Edge { int v, f, next; }...

2015-04-03 00:23:13

阅读数:424

评论数:0

Power Network

网络流 #include #include #include #include #include using namespace std; #define inf 1000000000 #define MAXN 555 struct Edge { int v, f, ...

2015-04-03 00:19:17

阅读数:212

评论数:0

Minimum Cost

费用流问题, #include #include #include #include #include using namespace std; #define MAXN 555 #define INF 0x1f1f1f #define MAXE 50000 struct...

2015-04-03 00:00:39

阅读数:117

评论数:0

Optimal Milking

有一些牛,和一些牛奶站,没个牛奶站每天最多收M只牛奶的牛, 怎样安排可以是所有牛到牛奶站的最长路径最短      思路:         路径最短-》最短路        求最大值最小 -》 二分         牛 -》 牛奶站 多值匹配        but这个题二分取值上限要取好,...

2015-03-31 07:54:54

阅读数:203

评论数:0

Jamie's Contact Groups

二分 + 多值匹配  思路:一对多的二分图的多重匹配。二分图的多重匹配算法的实现类似于匈牙利算法,对于集合C中的元素xi,找到一个与其相连的元素yi后,检查匈牙利算法的两个条件是否成立,若yi未被匹配,则将xi,yi匹配。否则,如果与yi匹配的元素已经达到上限,那么在所有与yi匹配的元素中选...

2015-03-27 23:16:53

阅读数:262

评论数:0

Going Home

最小费用流,我们先求出m到每个H的最短距离, 然后建立一个超级源点SRC和一个超级汇点SINK, 源点到每一个M的流量值为1, H到每个汇点的流量值也是1,然后 m和H之间的流量也是1,这样就保证,他的单价就是 距离的费用, 也确保了一个人只能找一个家  不断用SPFA找增广路,SPFA...

2015-03-27 23:13:57

阅读数:226

评论数:0

Dining

裸Dinic模板 #include #include #include #include #include using namespace std; #define inf 1000000000 #define MAXN 555 struct Edge ...

2015-03-27 23:10:14

阅读数:196

评论数:0

Treasure Exploration

裸地求最大匹配 #include #include #include #include using namespace std; #define MAXN 666 bool gra[MAXN][MAXN], vis[MAXN]; int cx[MAXN], cy[MAXN]; ...

2015-03-26 00:02:25

阅读数:301

评论数:0

Air Raid

一个有向图,且我们要注意一句话. Each paratrooper lands at an intersection and can visit other intersections following the town streets. 所以我们要先把所有能通向的点都连上边,然后最小点覆盖 ...

2015-03-26 00:00:57

阅读数:351

评论数:0

Strategic Game

其实这道题完全可以用树形DP做, 为了练习匹配问题就用匹配做了, 这个就是求最小点覆盖, 就一个裸地求最大匹配然后用N-最大匹配就好了,因为无向,所以双向边,然后求出来的最大匹配/2就是我们真正的匹配数 #include #include #include #include #i...

2015-03-25 23:59:20

阅读数:210

评论数:0

Antenna Placement

就是二分图匹配, 要求把每一个*都能盖上的最小DAir antennas的数目, 那么我们首先先把能共用的数目求出来,就是求最大匹配, 然后用总数减去可以跟别人共用的数目就是我们必须使用的最小数目 #include #include #include #include using ...

2015-03-25 00:38:28

阅读数:211

评论数:0

Rain on your Parade

这道题其实就是一个Hopcroft-Carp模板题 在匈牙利算法中,我们每次寻找一条增广路来增加匹配集合M.可以证明,每次找增广路的复杂度是O(E),一共需要增广O(V)次,因此总时间复杂度为O(VE).为了降低时间复杂度,在Hopcroft Karp算法中,我们在增加匹配集合M时,每次寻找多...

2015-03-25 00:04:49

阅读数:208

评论数:0

Swap

首先我们要想明白一点,主对角先一定是  i == j 的点是marix[i][j]1, 也就是第I行必须要跟第I列匹配, 那么这道题就变成了一个二分图匹配问题     如果   i行可以跟I列匹配, 那么一定有解, 也就是最大匹配数一定等于矩阵行数     #include #in...

2015-03-25 00:02:33

阅读数:172

评论数:0

棋盘游戏

就是判断下那个节点会影响匹配,那么我们就依次枚举好了,我们先求出最大匹配,然后以检测点是不是关键点 #include #include int map[105][105],pre[105],vis[105]; int n,m; int hungry(int u) { int...

2015-03-24 23:57:15

阅读数:205

评论数:0

Courses

模板题 #include #include #include #include #include using namespace std; #define MAXN 300 int match[MAXN]; bool vis[MAXN], gra[MAXN][MAXN]; int p...

2015-03-24 23:55:47

阅读数:178

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭