【二分图匹配(最小路径覆盖)】hdu 1151 Air Raid

原创 2013年12月04日 15:35:59

http://acm.hdu.edu.cn/showproblem.php?pid=1151

题意:有n个路口,m条路(单向、不成环),有一些伞兵降落到路口,求最少数量的伞兵可以访问所有路口

分析:二分图DAG图(无回路有向图)的最小路径覆盖 = 节点数 - 最大匹配数

路径覆盖:在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联。


#include<iostream>
#include<cstring>
#include<cstdio>

const int NM=130;
int a[130][130],link[NM],flag[NM],cross;

int Find(int x)
{
	for(int i=1;i<=cross;i++)
	{
		if(a[x][i]&&!flag[i])
		{
			flag[i]=1;
			if(link[i]==-1||Find(link[i]))
			{
				link[i]=x;
				return 1;
			}
		}
	}
	return 0;
}

int main()
{
	int T,street,i,ans,x,y;
	scanf("%d",&T);
	while(T--)
	{
		memset(a,0,sizeof(a));
		memset(link,-1,sizeof(link));
		scanf("%d%d",&cross,&street);
		for(i=0;i<street;i++)
		{
			scanf("%d%d",&x,&y);
			a[x][y]=1;
		}
		ans=0;
		for(i=1;i<=cross;i++)
		{
			memset(flag,0,sizeof(flag));
			if(Find(i)) ans++;
		}
		printf("%d\n",cross-ans);
	}
	return 0;
}





相关文章推荐

hdu 1151 Air Raid(二分图匹配--最小路径覆盖)

Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total...

HDU1151_Air Raid(二分图/最小路径覆盖=n-最大匹配)

解题报告 题目传送门 题意: 一个小镇,所有的街道都是单向的,这些街道都是从一个十字路口通往另一个十字路口,已知从任何十字路口出发,沿着这些街道行走,都不能回到同一个十字路口,也就是说不存在回路。 计...

HDU 1151 Air Raid 最小路径覆盖,二分图匹配匈牙利算法(邻接表存关系)处理有向图

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1151 Air Raid Time Limit: 2000/1000 MS (Java/Others)...

hdu 1151 Air Raid (二分匹配,最小路径覆盖)

Problem Description Consider a town where all the streets are one-way and each street leads from on...

杭电 hdu 1151 Air Raid (二分匹配 + 最小路径覆盖)

杭电   hdu  1151   Air Raid  (二分匹配 + 最小路径覆盖) Air Raid Time Limit: 2000/1000 MS (Java/O...

hdu1151Air Raid (二分匹配,最小路径覆盖)

Problem Description Consider a town where all the streets are one-way and each street leads from on...

HDOJ 题目1151 Air Raid(二分图,最小路径覆盖)

Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total...

HDU 1151 Air Raid 二分图最小边覆盖

题意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。(这个题意摘自题目的Dis...
  • NMfloat
  • NMfloat
  • 2016年02月19日 17:33
  • 293

hdu 1151 Air Raid 最小路径覆盖(最大匹配)

#include #include #include #include #include using namespace std; const int maxn=1010; vectore[...

poj 1422 Air Raid 最小路径覆盖 二分图匹配 解题报告

Description Consider a town where all the streets are one-way and each street leads from one inte...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【二分图匹配(最小路径覆盖)】hdu 1151 Air Raid
举报原因:
原因补充:

(最多只允许输入30个字)