题目:http://poj.org/problem?id=1325

求最小点覆盖。输出最大匹配数就行,结果略复杂地弄了。

注意由题可知 可以直接把与0有关的边删掉。不过亲测不删0而计数时不计0就会WA。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,k,pre[],head[],xnt,a,x,y,ans;
bool vis[];
struct Node{
int next,to;
}edge[];
void add(int x,int y)
{
edge[++xnt].next=head[x];
edge[xnt].to=y;
head[x]=xnt;
}
bool dfs(int u)
{
vis[u]=;
for(int i=head[u];i;i=edge[i].next)
{
int v=edge[i].to;
if(vis[v])continue;
vis[v]=;
if(!pre[v]||dfs(pre[v]))
{
pre[v]=u;pre[u]=v;return true;
}
}
return false;
}
int main()
{
while()
{
scanf("%d",&n);
if(!n)return ;
memset(pre,,sizeof pre);
memset(head,,sizeof head);
xnt=;ans=;
scanf("%d%d",&m,&k);
for(int i=;i<=k;i++)
{
scanf("%d%d%d",&a,&x,&y);
if(!x||!y)continue;
add(x,y+);add(y+,x);
}
for(int i=;i<n;i++)
if(!pre[i])
{
memset(vis,,sizeof vis);
vis[i]=;dfs(i);
}
memset(vis,,sizeof vis);
for(int i=;i<n;i++)
if(!pre[i])
{
vis[i]=;dfs(i);
}
for(int i=;i<n;i++)
if(!vis[i])ans++;
for(int i=;i<m+;i++)
if(vis[i])ans++;
printf("%d\n",ans);
}
}

POJ1325机器重启次数——二分图匈牙利算法模板的更多相关文章

  1. 匈牙利算法模板 hdu 1150 Machine Schedule(二分匹配)

    二分图:https://blog.csdn.net/c20180630/article/details/70175814 https://blog.csdn.net/flynn_curry/artic ...

  2. hdu 2063 过山车 (最大匹配 匈牙利算法模板)

    匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最 ...

  3. poj 1274 The Perfect Stall【匈牙利算法模板题】

    The Perfect Stall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20874   Accepted: 942 ...

  4. HDU 2444 - The Accomodation of Students - [二分图判断][匈牙利算法模板]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2444 Time Limit: 5000/1000 MS (Java/Others) Mem ...

  5. HDU 1045 - Fire Net - [DFS][二分图最大匹配][匈牙利算法模板][最大流求二分图最大匹配]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  6. hdu-1150(二分图+匈牙利算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150 思路:题目中给出两个机器A,B:给出k个任务,每个任务可以由A的x状态或者B的y状态来完成. 完 ...

  7. POJ 1325 && 1274:Machine Schedule 匈牙利算法模板题

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12976   Accepted: 5529 ...

  8. 匈牙利 算法&模板

    匈牙利 算法 一. 算法简介 匈牙利算法是由匈牙利数学家Edmonds于1965年提出.该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法. 二分图的定义: 设G=(V,E)是一个 ...

  9. hiho1122_二分图匈牙利算法

    题目 给定一个图的N个节点和节点之间的M条边,数据保证该图可以构成一个二分图.求该二分图最大匹配. 题目链接:二分图最大匹配     首先通过染色法,将图的N个节点分成两个部分:然后通过匈牙利算法求二 ...

随机推荐

  1. K8S镜像删除及环境清理

    环境清理: #删除所有容器sudo docker rm -f $(sudo docker ps -qa) #删除/var/etcd目录sudo rm -rf /var/etcd #删除/var/lib ...

  2. 【转】EntityFramework动态组合Lambda表达式作为数据筛选条件,代替拼接SQL语句

    传统的操作数据库方式,筛选数据需要用StringBuilder拼接一大堆的WHERE子句. 在Entity Framework中,代码稍有不慎就会造成巨大性能消耗,如: using(var db=ne ...

  3. forget word out a~2

        1● an 不,非,无   2● amphi     两个,两种     3● ad 做,加强:  

  4. js弹窗那些事

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  5. React教程-组件

    在React中创建一个组件非常简单(React组件有2种,一个非状态组件,一个有状态组件) 首先我们来看看ES6里面如何写构造函数 class App{ constructor(){ } event( ...

  6. Gradle 完整指南(Android)

    Gradle 的编译周期 在解析 Gradle 的编译过程之前我们需要理解在 Gradle 中非常重要的两个对象.Project和Task. 每个项目的编译至少有一个 Project,一个 build ...

  7. 宿主环境(host environment)

    在此前的内容中,我讨论的都是JavaScript语言及其规范,而并非该语言的应用环境.在大多数人看来,JavaScript应用环境都是Web浏览器,这也的确是该语言最早的设计目标.然而从很早开始,Ja ...

  8. haproxy配置示例

    1.最基础的的配置 下面的例子配置了一个监听在所有接口的80端口上HTTP proxy服务,它转发所有的请求至后端监听在127.0.0.1:8000上的"server". glob ...

  9. python 正则表达式 提取网页中标签的中文

    转载请注明出处 http://www.cnblogs.com/pengwang52/. >>> p= re.compile(r'\<div class="commen ...

  10. PNotes – 目前最优秀的桌面便签软件 - imsoft.cnblogs

    Pnotes: 下载链接: http://pan.baidu.com/s/1o6FK4SM 密码: n7il 便携版,包含中文语音包,包含十几种合适的皮肤. 更多信息:小众软件 http://www. ...