题意:

//题意就是给你k个挤奶池和c头牛,每个挤奶池最多可以来m头牛,而且每头牛距离这k这挤奶池
//有一定的距离,题目上给出k+c的矩阵,每一行代表某一个物品距离其他物品的位置
//这里要注意给出的某头牛和某个挤奶池的距离有可能不是最短的,所以这里要用最短路
//来找出来某个物品到其他物品的最小距离,题目上要求出来在满足每头牛都能到达挤奶池的情况下
//使所有牛中到达挤奶池中的最大值尽量小
//全部处理完之后这就是一个二分图多重匹配问题

代码:

 1 #include<algorithm>
2 #include<string.h>
3 #include<stdio.h>
4 const int INF=0x3f3f3f3f;
5 using namespace std;
6 int n,m,k;
7 int g[300][300],mpp[300][300];
8 int link[35][20],sum[35],used[35];
9 void floy()
10 {
11 for(int k=1; k<=n+m; k++)
12 {
13 for(int i=1; i<=n+m; i++)
14 {
15 for(int j=1; j<=n+m; j++)
16 {
17 if(g[i][j]>g[i][k]+g[k][j])
18 g[i][j]=g[i][k]+g[k][j];
19 }
20 }
21 }
22 }
23 int dfs_solve(int u)
24 {
25 for(int i=1; i<=n; i++)
26 {
27 if(mpp[u][i]&&!used[i])
28 {
29 used[i]=1;
30 if(link[i][0]<sum[i])
31 {
32 link[i][++link[i][0]]=u;
33 return true;
34 }
35 for(int j=1; j<=sum[i]; j++)
36 {
37 if(dfs_solve(link[i][j]))
38 {
39 link[i][j]=u;
40 return true;
41 }
42 }
43 }
44 }
45 return false;
46 }
47 int hungran()
48 {
49 int ans=0;
50 for(int i=1; i<=n; i++)
51 link[i][0]=0;
52 for(int i=1; i<=n; i++)
53 sum[i]=k;
54 for(int i=n+1; i<=n+m; i++)
55 {
56 memset(used,0,sizeof(used));
57 if(dfs_solve(i)) ans++;
58 }
59 return ans==m;
60 }
61 int main()
62 {
63 while(~scanf("%d%d%d",&n,&m,&k))
64 {
65 for(int i=1; i<=n+m; i++)
66 {
67 for(int j=1; j<=n+m; j++)
68 {
69 scanf("%d",&g[i][j]);
70 if(g[i][j]==0)
71 g[i][j]=INF;
72 }
73 }
74 for(int i=1; i<=n+m; i++)
75 g[i][i]=0;
76 floy();
77 int l=1,r=INF,mid;//题意明明是200是最大距离,可是这里换到210还是错。
78 //r还是得开到inf......
79 while(l<=r)
80 {
81 memset(mpp,0,sizeof(mpp));
82 mid=(l+r)>>1;
83 for(int i=n+1; i<=n+m; i++)
84 {
85 for(int j=1; j<=n; j++)
86 {
87 if(g[i][j]<=mid)
88 mpp[i][j]=1;
89 }
90 }
91 if(hungran())
92 r=mid-1;
93 else
94 l=mid+1;
95 }
96 printf("%d\n",l);
97 }
98 }

POJ_2112 二分图多重匹配的更多相关文章

  1. hihoCoder 1393 网络流三·二分图多重匹配(Dinic求二分图最大多重匹配)

    #1393 : 网络流三·二分图多重匹配 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来. 小Hi和小H ...

  2. 【POJ 1698】Alice's Chance(二分图多重匹配)

    http://poj.org/problem?id=1698 电影和日子匹配,电影可以匹配多个日子. 最多有maxw*7个日子. 二分图多重匹配完,检查一下是否每个电影都匹配了要求的日子那么多. #i ...

  3. 稳定的奶牛分配 && 二分图多重匹配+二分答案

    题意: 农夫约翰有N(1<=N<=1000)只奶牛,每只奶牛住在B(1<=B<=20)个奶牛棚中的一个.当然,奶牛棚的容量有限.有些奶牛对它现在住的奶牛棚很满意,有些就不太满意 ...

  4. hiho 第117周 二分图多重匹配,网络流解决

    描述 学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来. 小Hi和小Ho作为班上的班干部,统计分配比赛选手的重任也自然交到了他们手上. 已知小Hi和小Ho所在的班级一共有N名学生(包含 ...

  5. 【网络流24题】No.7 试题库问题 (最大流,二分图多重匹配)

    [题意] 假设一个试题库中有 n 道试题. 每道试题都标明了所属类别. 同一道题可能有多个类别属性.现要从题库中抽取 m 道题组成试卷.并要求试卷包含指定类型的试题. 试设计一个满足要求的组卷算法. ...

  6. POJ2584 T-Shirt Gumbo【二分图多重匹配】

    题目链接: id=2584">http://poj.org/problem?id=2584 题目大意: 如今有5种型号(S.M.L.X.T)的衣服要发放给N个參赛队员.给出每一个參赛者 ...

  7. 网络流24题 第五题 - PowerOJ1740 CodeVS1905 圆桌问题 二分图多重匹配 网络最大流

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - PowerOJ1740 - 有SPJ - 推荐 题目传送门 - CodeVS1905 - 无SPJ - 0% ...

  8. [HihoCoder1393]网络流三·二分图多重匹配

    题目大意: 班级有$N$名学生,运动会有$M$项不同的比赛,第$i$项比赛每个班需要派出$m_i$名选手参加,编号为i的学生最多同时参加给定的$b_i$项比赛中的任意$a_i$项比赛.根据统计的结果, ...

  9. hdu3605 Escape 二分图多重匹配/最大流

    2012 If this is the end of the world how to do? I do not know how. But now scientists have found tha ...

随机推荐

  1. SpringBoot嵌入式Servlet容器

    SpringBoot默认是将Tomcat作为嵌入式的servlet容器. 问题: 如何修改嵌入式的servlet容器? 1)在配置文件中设置对应的属性值 server.port=8081 # Tomc ...

  2. upload-labs 1-21关通关记录

    0x01: 检查源代码,发现JS前端验证,关闭JS即可连接,或者手动添加.php,或者上传1.jpg,再抓包修改为php 0X02: if (($_FILES['upload_file']['type ...

  3. 【Web】CSS实现鼠标悬停实现显示与隐藏 特效

    鼠标悬停实现显示与隐藏特效 简单记录 - 慕课网 Web前端 步骤四:鼠标悬停实现显示与隐藏特效 初步掌握定位的基本使用,以及CSS选择器更高级的运用,完成一个网页中必会的鼠标经过隐藏显示特效. 实现 ...

  4. ctfhub技能树—文件上传—双写后缀

    双写后缀绕过 用于只将文件后缀名,例如"php"字符串过滤的场合: 例如:上传时将Burpsuite截获的数据包中文件名[evil.php]改为[evil.pphphp],那么过滤 ...

  5. ctfhub技能树—信息泄露—PHPINFO

    打开靶机 查看页面,是PHP info界面 只有这一个页面,查找一下有没有flag 拿到flag 浅谈ctf中phpinfo需要关注的点(转自先知社区) 1 https://xz.aliyun.com ...

  6. kafka(二)基本使用

    一.Kafka线上集群部署方案 既然是集群,那必然就要有多个Kafka节点机器,因为只有单台机器构成的kafka伪集群只能用于日常测试之用,根本无法满足实际的线上生产需求. 操作系统: kafka由S ...

  7. Linux操作系统相关资料

    玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...

  8. kaggle新手如何在平台学习大神的代码

    原创:数据臭皮匠  [导读]Kaggle ,作为听说它很牛X但从未接触过的同学,可能仅仅了解这是一个参加数据挖掘比赛的网站,殊不知Kaggle也会有赛题相关的数据集, 比如我们熟知的房价预测.泰坦尼克 ...

  9. InnoDB的主键选择与插入优化

    索引的存放方式MyISAM和InnoDB存储引擎在MySQL中,不同存储引擎对索引的实现方式是不同的,总结下MyISAM和InnoDB两个存储引擎的索引实现方式.MyISAM引擎使用B+Tree作为索 ...

  10. VMware中安装Ubuntu后,安装VMwareTools提示“Not enough free space to extract VMwareTools-10.3.10-13959562.tar.gz”的解决办法

    将加载后的Vmware Tools中的*.tar.gz文件复制到桌面后提取,否则会报错: