POJ 3281 Dining[网络流]】的更多相关文章

题意很简单:JOHN是一个农场主养了一些奶牛,神奇的是这些个奶牛有不同的品味,只喜欢吃某些食物,喝某些饮料,傻傻的John做了很多食物和饮料,但她不知道可以最多喂饱多少牛,(喂饱当然是有吃有喝才会饱) 输入数据有N,F,D,表示牛的个数,食物的数量,饮料的数量 接着输出N行表示N个牛的数据 每个牛的数据前2个是Fi和Di表示第i个牛喜欢吃的食物种数和饮料种数,接着输出Fi个食物的编号和Di个食物的编号 ok题意就是这样,这题主要考的是建图 需要把牛拆点,一分为二 图应该是 这种形式      源…
B - DiningTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88038#problem/B Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no oth…
题意:农夫为他的 N (1 ≤ N ≤ 100) 牛准备了 F (1 ≤ F ≤ 100)种食物和 D (1 ≤ D ≤ 100) 种饮料.每头牛都有各自喜欢的食物和饮料, 而每种食物或饮料只能分配给一头牛.最多能有多少头牛可以同时得到喜欢的食物和饮料? 析:是一个经典网络流的题,建立一个超级源点,连向每种食物,建立一个超级汇点,连向每种饮料,然后把每头牛拆成两个点, 一个和食物连,一个和饮料连,最后跑一遍最大流即可. 代码如下: #pragma comment(linker, "/STACK:…
Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot to check his menu against their preferences. Although he might not…
[题意]有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有N头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料. (1 <= F <= 100, 1 <= D <= 100, 1 <= N <= 100) [建模方法] 此题的建模方法比较有开创性.以往一般都是左边一个点集表示供应并与源相连,右边一个点集表示需求并与汇相连.现在不同了,供应有两种资源,需求仍只有一个群体,怎么办?…
Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot to check his menu against their preferences. Although he might not…
POJ 3281 Dining (网络流) Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot to check his menu against their…
POJ 3281 Dining id=3281" target="_blank" style="">题目链接 题意:n个牛.每一个牛有一些喜欢的食物和饮料.每种食物饮料仅仅有一个.问最大能匹配上多少仅仅牛每一个牛都能吃上喜欢的食物和喜欢的饮料 思路:最大流.建模源点到每一个食物连一条边,容量为1,每一个饮料向汇点连一条边容量为1,然后因为每一个牛有容量1.所以把牛进行拆点.然后食物连向牛的入点,牛的出点连向食物,跑一下最大流就可以 代码: #incl…
[题目链接] http://poj.org/problem?id=3281 [题目大意] 给出一些食物,一些饮料,每头牛只喜欢一些种类的食物和饮料, 但是每头牛最多只能得到一种饮料和食物,问可以最多满足几头牛的要求 即同时得到喜欢的饮料和食物 [题解] 建立一个源点连接食物,汇点连接饮料,中间连接牛, 为了防止同一头牛占用多个资源,所以我们对牛进行拆点,限流为1. [代码(Isap)] #include <cstdio> #include <cstring> using names…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 20052   Accepted: 8915 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulo…
题目链接: http://poj.org/problem?id=3281 题目大意: 有n头牛,f种食物,d种饮料,第i头牛喜欢fi种食物和di种饮料,每种食物或者饮料被一头牛选中后,就不能被其他的牛选了,问最多能满足多少头牛的要求? 解题思路: 最大匹配问题,关键在于如何建图,可以虚构出来一个源点,一个汇点,一共需要f+d+2*n+2个点即可,建图为:源点—>食物—>牛—>牛—>饮料—> 汇点.把牛作为点拆开建图是为了让一头牛只对应一种饮料和一种食物,避免出现对应多种饮料或…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11828   Accepted: 5437 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulo…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 18230   Accepted: 8132 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulo…
Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot to check his menu against their preferences. Although…
不使用二分图匹配,使用最大流即可,设源点S与汇点T,S->食物->牛->牛->饮料->T,每条边流量为1,因为流过牛的最大流量是1,所以将牛拆成两个点. 前向星,Dinic,复杂度:O(V2E) 直接套用模板 #include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<set…
分析: 数学模型是三个集合A,B,C,(a,b,c)构成一个匹配.因为图一个点只能匹配一次,把a拆点a',a", 在可以匹配的点上连边,s - b - a' - a" - c - t,然后最大流就好了. /********************************************************* * ------------------ * * author AbyssalFish * **************************************…
题目链接:http://poj.org/problem?id=3281 题目大意:农夫为他的 N (1 ≤ N ≤ 100) 牛准备了 F (1 ≤ F ≤ 100)种食物和 D (1 ≤ D ≤ 100) 种饮料.每头牛都有各自喜欢的食物和饮料,而每种食物或饮料只能分配给一头牛.最多能有多少头牛可以同时得到喜欢的食物和饮料? 解题思路:令st=0为源点,en=f+2*n+1为汇点,st向每种食物建流量为1的边,每种食物向喜欢它的牛(拆点1)建流量为1的边,眉头牛的拆点之间建流量为1的边,每头牛…
http://poj.org/problem?id=3281 题意: 有n头牛,F种食物和D种饮料,每头牛都有自己喜欢的食物和饮料,每种食物和饮料只能给一头牛,每头牛需要1食物和1饮料.问最多能满足几头牛的需求. 思路: #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<sstream> #include<vector>…
最大流. 这东西好像叫三分图匹配. 源点向每个食物点连一条容量为1的边. 每个饮料点向汇点连一条容量为1的边. 将每个牛点拆点,食物点向喜欢它的牛的入点连一条容量为1的边,牛的出点向它喜欢的饮料点连一条容量为1的边. 最大流即为答案,每头牛拆点是为了保证每头牛只有一种食物和一种饮料. #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<qu…
Dining Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot to check his menu against their preferences. Al…
<题目链接> 题目大意: 有N头牛,F种食物,D种饮料,每一头牛都有自己喜欢的食物和饮料,且每一种食物和饮料都只有一份,让你分配这些食物和饮料,问最多能使多少头牛同时获得自己喜欢的食物和饮料. 解题分析: 开始还以为是一道匹配问题,后面才知道这是用网络流求解. 首先我们要明确,如果按照源点——>食物——>牛——>饮料——>汇点这样建图,是不符合题目条件的.因为题目要求每头牛只能吃一份食物和饮料,而这样建图,如果一头牛对应多个食物和饮料,那这样那头牛是可以吃多份食物和饮料…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14144   Accepted: 6425 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulo…
题意: 农夫约翰为他的牛准备了F种食物和D种饮料.每头牛都有各自喜欢的食物和饮料,而每种食物或饮料只能分配给一头牛.最多能有多少头牛可以同时得到各自喜欢的食物和饮料? 思路: 用 s -> 食物 -> 牛 -> 牛 -> 饮料 -> t 为路径,建图.然后跑最大流. p.ps.: 抄的书上的思路和dfs增广路的模板,当做学习网络流的第一步吧 :) 代码: #include <cstdio> #include <cstring> #include <…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 22572   Accepted: 10015 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabul…
饮料->牛->食物. 牛拆成两点. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<iostream> #include<sstream> #include<cmath…
题意 : 有 N 头牛,John 可以制作 F 种食物和 D 种饮料, 然后接下来有 N 行,每行代表一头牛的喜好==>开头两个数 Fi 和 Di 表示这头牛喜欢 Fi 种食物, Di  种饮料,接下来 Fi 个数表示喜欢的食物编号,Di  个数表示喜欢的饮料的编号,现在 John 要使用最优决策制作出 F 种食物和 D 种饮料,问怎么喂才能使尽可能多的牛喂饱 ( 喂饱 = 一份食物一份饮料,且一头牛最多消耗一份食物和一份饮料 ),最后输出最多喂饱的牛数. 分析:如果是只有食物或者饮料一种的话,…
题目链接 题意 有\(N\)头牛,\(F\)个食物和\(D\)个饮料.每头牛都有自己偏好的食物和饮料列表. 问该如何分配食物和饮料,使得尽量多的牛能够既获得自己喜欢的食物又获得自己喜欢的饮料. 建图 在 源点 到 食物 之间加边,边权为\(1\) 在 饮料 到 汇点 之间加边,边权为\(1\) 将牛拆成两点,在两点之间加边,边权为\(1\) 这一点很重要,可以从以下两个方面去考虑: 1) 从含义上,只要流为1,这头牛就被满足了,多了就纯属是浪费. 2) 从操作上,最后答案是根据最大流的值来判断的…
记得把牛拆掉!拆成两个点i和i'在中间连一条流量为1的边,来限制每头牛只能选一组 一般来讲是一种物品一个消费者各占一边,但是这里有两个物品,所以考虑把牛放在中间,s向所有的食物连流量为1的边,所有食物向能吃它的牛i连流量为1的边,所有饮料向t连流量为1的边,牛i'向所有他能喝的连流量为1的边,然后跑最大流即可. #include<iostream> #include<cstdio> #include<queue> #include<cstring> usin…
牛是很挑食的.每头牛都偏爱特定的食物和饮料,其他的就不吃了. 农夫约翰为他的牛做了美味的饭菜,但他忘了根据它们的喜好检查菜单.虽然他不可能喂饱所有的人,但他想让尽可能多的奶牛吃上一顿有食物和水的大餐. 农民John煮了F(1≤F≤100)种食物,准备了D(1≤D≤100)种饮料.他的每头牛(1≤N≤100)已经决定了她是吃某种食物还是喝某种饮料.农民约翰必须为每头奶牛分配一种食物和一种饮料,以使得到这两种食物的奶牛数量最大化. 每一道菜或饮料只能由一头奶牛食用.,一旦食物2型被分配给一头奶牛,其…
B - Dining Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3281 Appoint description:   Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she w…