摘要:
题意: 有 2*n个同学,n男n女,知道了 有 m 对 男女之间木有吵过架,现在这 n 个女生要找对象,要求没有和她吵过架或者没有和她的一个朋友吵过架, 当 n 个女生都找到对象的时候算作一轮,然后重新找,满足每个女生都不能找和上次一样的对象,而且每个女生除了自己没有吵过架的人外,最多 可一和 k 个男生成为朋友,问最多能进行多少轮。分析: 建图: 将每个女生 i 拆成两个点 i 和 i+n 如果女生 i 可以和 男生 j 没吵过架,就在 i 和 j 之间连一条容量为 1 的边 否则在 i+n 和 j 之间连一条容量为 1 的边 在 i 和 i+n之间连一条容量为 k的边, 在 s 和 1.. 阅读全文
posted @ 2012-10-11 23:34
'wind
阅读(437)
评论(0)
推荐(0)
摘要:
题意: 有 2*n个同学,n男n女,知道了 有 m 对 男女之间木有吵过架,现在这 n 个女生要找对象,要求没有和她吵过架或者没有和她的一个朋友吵过架, 当 n 个女生都找到对象的时候算作一轮,然后重新找,满足每个女生都不能找和上次一样的对象,问最多能进行多少轮。分析: 将是朋友关系的女生放到一个集合,用来降低建图的时间复杂度。#include <stdio.h>#include <string.h>#define maxn 102#define clr(x)memset(x,0,sizeof(x))int f[maxn];int search(int x){ retu 阅读全文
posted @ 2012-10-11 20:37
'wind
阅读(338)
评论(1)
推荐(0)
摘要:
题意: 有一个烧烤机,每次最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,点的烤肉所需烘烤时间为 di, 每个人要烤的肉可以分成若干份在同时烤,问是否存在一种方案可以满足所有顾客的需求。分析: 将所有的到达时间和结束时间按升序排序,得到 x <= 2n-1 个时间区间。 建图: s为源,t为汇, 每个顾客i作为一个结点并连边(s, i, ni*ti) 每个区间j作为一个结点并连边(j, t, (ej-sj)*M),其中sj, ej分别表示区间j的起始时间和终止时间 对任意顾客i和区间j,若 [sj, ej] 完全包含在 [si 阅读全文
posted @ 2012-10-11 00:53
'wind
阅读(611)
评论(0)
推荐(1)


浙公网安备 33010602011771号