题意:A国家有M个代表,B国有N个代表,其中有K对代表可以进行谈判(一个是A国的,一个是B国的),并且每一个代表至少被包含在其中一对中(也就是说,每个人可以至少找到另外一个人谈判),每一对谈判需要一对电话联系(一对电话联系数目算1),现在使每个人都能进行电话联系的最少联系数目

思路:既然是求最少的联系数目,也就是找最少的对数。可以先找到最大二分匹配(此时的匹配全都不重复,都是一对一的),然后加上剩下未匹配的人得数目即可(因为每个人肯定至少找到另外一个人进行谈判)

n:A国代表人数

m:B国代表人数

最大二分匹配的人数=ans

未匹配的人数=n+m-2*ans

所求结果=最大二分匹配的人数+未匹配的人数=ans+n+m-2*ans=n+m-ans

ps:其实这题就是求的最小路径覆盖数

最小路径覆盖数=顶点数-最大匹配数

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; #define MAXN 1024
int n,m,k,x,y,pre[MAXN];
//二分图中X集和Y集的节点数各为n、m,边数为k;匹配边集为pre,其中节点i所在的匹配边为(pre[i],i)
bool v[MAXN],a[MAXN][MAXN];
//设二分图相邻矩阵为a,Y集合中节点的访问标志为v,若Y集合中的节点j已访问,则v[j]=true bool dfs(int i){//判断以X集合中的节点i为起点的增广路径是否存在
int j;
for(j=; j<=m; j++){
if(!v[j]&&a[i][j]){//搜索所有与i相邻的未访问点
v[j]=;//访问节点j
if(pre[j]==-||dfs(pre[j])){
//若j的前驱是未盖点或者存在由j的前驱出发的增广路径,则设定(i,j)为匹配边,返回成功标志
pre[j]=i;
return true;
}
}
}
return false;//返回失败标志
} int main(){
int i,ans;
scanf("%d%d%d",&n,&m,&k);
memset(a,,sizeof(a));//二分图的相邻矩阵初始化
memset(pre,-,sizeof(pre));//匹配边集初始化为空
for(i=; i<=k; i++){
scanf("%d%d",&x,&y);
a[x][y]=;
}
ans=;//匹配边数初始化为0
for(i=; i<=n; i++){//枚举X集的每个节点
memset(v,,sizeof(v));//设Y集合中的所有节点的未访问标志
if(dfs(i)) ans++;//若节点i被匹配边覆盖,则匹配边数+1
}
printf("%d\n",n+m-ans);
return ;
}

最新文章

  1. 【尺取】POJ 3320
  2. 【洛谷P3385】模板-负环
  3. Android 坐标系和 MotionEvent 分析、滑动
  4. R语言-GA算法脚本
  5. hdu 1020 Encoding
  6. 制作6寸 kindle pdf
  7. C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析
  8. Qt---在QLabel上实现系统时间
  9. (转)Mac OS X写了个rm时将文件放入回收站的小工具
  10. C++中的new与delete总结
  11. BZOJ 3990 [SDOI 2015] 排序 解题报告
  12. 测试一个函数的运行时间(C++)
  13. C++ 矩阵乘法
  14. 进阶: 案例八: Drag and Drop(动态)
  15. Struts1项目转成Struts2项目步奏
  16. Openjudge-计算概论(A)-字符串排序
  17. 制作支持 BIOS+UEFI 的 U 盘 grub2+bootmgr 引导 + deepin_recovery + deepin_iso + win_pe
  18. View,ViewGroup的Touch事件的分发机制
  19. [Swift]LeetCode106. 从中序与后序遍历序列构造二叉树 | Construct Binary Tree from Inorder and Postorder Traversal
  20. Problem 3: Largest prime factor

热门文章

  1. bzoj 5091: [Lydsy0711月赛]摘苹果
  2. 10.Java web&mdash;JavaBean
  3. Java常用的集合类(转)
  4. Ubuntu下Deb软件包相关安装与卸载
  5. Linux出现cannot create temp file for here-document: No space left on device的问题解决
  6. ftrace 详解
  7. js 中 Map/Set 集合
  8. IOS常见错误分析解决(一直更新) 你值得收藏-综合贴
  9. Android新技术学习——阿里巴巴免Root无侵入AOP框架Dexposed
  10. Yii自动生成项目