题意:

//题意就是给你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. torch.nn 的本质

    torch.nn 的本质 PyTorch 提供了各种优雅设计的 modules 和类 torch.nn,torch.optim,Dataset 和 DataLoader 来帮助你创建并训练神经网络.为 ...

  2. CPNDet:粗暴地给CenterNet加入two-stage精调,更快更强 | ECCV 2020

    本文为CenterNet作者发表的,论文提出anchor-free/two-stage目标检测算法CPN,使用关键点提取候选框再使用两阶段分类器进行预测.论文整体思路很简单,但CPN的准确率和推理速度 ...

  3. 快速查询表中的NULL数据

    正常情况下,NULL值是不会放入B-TREE索引的,因此根据IS NULL查询的时候走的通常是全表扫描,如果记录比较少还好,记录比较多,查询会非常耗时 可以通过创建一个索引来解决 CREATE IND ...

  4. 【Not BUG】微软Winform窗体中设计上的Bug,会导致程序编译失败?不,这不是BUG!

    这不是BUG!!! 原文地址: https://www.cnblogs.com/thanks/p/14302011.html 现在让我们回忆一下原文 原文的操作步骤: 1. 新建一个Window Fo ...

  5. 针对Linux系统主机,进入修复模式,解决开机报错问题

    1.让主机重启,进入开机时的内核选择界面,按e进入编辑界面 2.找到linux16那一行,将光标移动到最前面,按下End键,到这一行的末尾,然后空格 rd.break console=tty0 3.第 ...

  6. Doge.jpg 的背后是什么,你知道么?

    图片,是我们生活中最常见的信息载体,作为一个日常生活中无处不在的事物,我们已经很习惯静态或者动态的图片了.大家也了解静态图片主要是jpg/png格式,动态图片主要为 gif.那你有没有过一瞬间的疑惑: ...

  7. windows下部署Grafana +prometheus平台监控

      1.Prometheus简介 Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台包,解压并且添加基本的配置即可正常启Prometheus S ...

  8. 在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)

    Ubuntu18.04下编译libx264.libx265.libfdk_aac和ffmpeg 一.编译x264库 二.编译fdk-aac库 三.编译x265库 四.编译FFmpeg源码 五.设置环境 ...

  9. 1V升压5V和1.5V升压5V的集成电路芯片

    1.5V和1V输入,要升压输出5V的集成电路芯片合适? 干电池标准电压是1.5V,放电电压后面在0.9V-1V左右,如果要选用干电池1.5V升压到5V的合适的芯片,需要满足低压1V或者0.9V更好的低 ...

  10. Wi-Fi IoT套件连PCF8563实现电子钟功能

    首先跟同样新入手单片机开发的小伙伴分享一点I2C通信的知识.我估计大部分入手开发板的小伙伴都有一定程序开发的能力,但是底层开发可能是新接触,我看有的小伙伴配置开发环境都有障碍,其实并不是多复杂,只是首 ...