二分图匹配求最小点覆盖

把两个机器作为两个集合,把每个任务当做边建图.那么所求的就是二分图的最小点覆盖.

但是最开始WA了,原因在于,题目要求的是变换的次数,也就是与0连的边需要删去.

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int init(){
int rv=0,fh=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') fh=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
rv=(rv<<1)+(rv<<3)+c-'0';
c=getchar();
}
return fh*rv;
}
int n,m,k,g[105][105],match[105];
bool f[105];
bool hungarian(int u){
for(int i=1;i<=g[u][0];i++){
int v=g[u][i];
if(!f[v]){
f[v]=1;
if(match[v]==-1||hungarian(match[v])){
match[v]=u;
return 1;
}
}
}
return 0;
}
int main(){
while(1){
n=init();
if(!n) break;
m=init();k=init();
memset(g,0,sizeof(g));
for(int i=0;i<=n;i++) match[i]=-1;
for(int i=1;i<=k;i++){
int t=init(), u=init(),v=init();
if(u&&v) g[u][++g[u][0]]=v;
}
int ans=0;
for(int i=1;i<n;i++){
memset(f,0,sizeof(f));
if(hungarian(i)) ans++;
}
cout<<ans<<endl;
}
return 0;
}

最新文章

  1. C#学习网站记录
  2. 在AD转换中的过采样和噪声形成
  3. BZOJ 2154 Crash的数字表格
  4. Delphi中类的运行期TypeInfo信息结构说明
  5. javascript名字由来
  6. ubuntu17.10 python3.6 install plugins for AI
  7. 禁掉coolie,session还能正常使用吗?
  8. Ribbon WorkBench 当ValueRule的值为空时的设置
  9. hibernate的session的增删查改
  10. WCF 改成 restful api
  11. Mashmokh and Numbers CodeForces - 415C
  12. SQL Server 常用数据类型
  13. HttpRunner接口自动化测试框架
  14. Linux网络编程服务器模型选择之循环服务器
  15. [USACO06NOV]玉米田$Corn \ \ Fields$ (状压$DP$)
  16. 025——VUE中事件的基本使用与VUE中差异
  17. GDB 单步调试汇编
  18. Keras之序贯(Sequential)模型
  19. unity 大游戏使用什么框架
  20. BZOJ1012 [JSOI2008]最大数 线段树

热门文章

  1. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function(切比雪夫多项式+乘法逆元)
  2. &#39;&lt;&lt;&#39; &#39;|&#39; &#39;&gt;&gt;&#39; 等位运算符 课本祥解
  3. Stars(树状数组)
  4. angular2 Http和websocket
  5. SPRING BOOT跨域访问处理
  6. 解决mysql不是内部或外部命令
  7. laravel中数据库在哪个文件中配置
  8. 【开发技术】json
  9. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
  10. python_爬百度百科词条