题意:

n只公牛和m只母牛,
某些公牛和某些母牛互相喜欢。
但最后一只公牛只能和一只母牛建立一对一匹配。
要使得最后牛群匹配对数最大。

链接:

http://caioj.cn/problem.php?id=1122

#include <bits/stdc++.h>
using namespace std;
const int maxN = 1e5 + ;
vector<int> G[maxN];
int match[maxN];
int vis[maxN];
int n, m, sum;
int dfs(int u) { for(int i = ; i < G[u].size(); i++) {
int v = G[u][i];
//有路而且没被访问
if(!vis[v]) {
vis[v] = ;//标记点i已经访问过 //如果点i未被配对或者找到了新的配对
if(match[v] == || dfs(match[v])) {
//更新配对关系
match[v] = u;
match[u] = v;
return ;
}
}
}
return ;
} int main() {
// freopen("1.txt","r", stdin);
scanf("%d %*d %d", &n, &m);
for(int i = ; i < m; i++) {
int u, v;
scanf("%d %d", &u, &v);
v += ;
G[u].push_back(v);
G[v].push_back(u);
} memset(match, , sizeof(match)); for(int i = ; i <= n; i++){
memset(vis, , sizeof(vis));
if(dfs(i)) {
sum++;
}
}
printf("%d\n", sum); }

最新文章

  1. 集群CLUSTER种类介绍
  2. HTML5 WebSocket
  3. bzoj2243: [SDOI2011]染色--线段树+树链剖分
  4. xp系统打开软件程序总是弹出警告窗口,很烦人对不,怎么办呢?进来看
  5. JavaScript复习笔记——字符串
  6. Google的IP地址一览表,加上代理服务器
  7. Android中去掉标题栏的3种方法
  8. webkit.net使用方法日记
  9. C++拾遗(九)类与动态内存分配(1)
  10. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named &#39;springSessionRepositoryFilter&#39; is defined
  11. 升级automake和autoconf
  12. maven overlays 合并多个war
  13. 【NOI2002】银河英雄传说(并查集)
  14. JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
  15. [JDK8]读写锁的改进:StampedLock
  16. codeforces#1090 D. New Year and the Permutation Concatenation(打表找规律)
  17. GitHub:Awesome-Hacking(黑客技能列表-恶意代码)
  18. spring中的IOC/DI的知识点
  19. Unity3D工程全资源自动检测系统
  20. ReentrantLock 使用

热门文章

  1. __slots__ 和 @property
  2. synchronized(6)修饰语方法之:static方法
  3. h5-19-文件操作-文件域
  4. 转 Oracle中merge into的使用
  5. Vijos p1688 病毒传递 树形DP
  6. AJPFX关于java中的方法
  7. 复位电路设计&mdash;&mdash;利用PLL锁定信号(lock)产生复位信号
  8. java实现斐波那契的两种方法
  9. std::map插入已存在的key时,key对应的内容不会被更新
  10. python3 进程与线程