这道题可以理解为只要有一个点连出去了,连了集合点无所谓,那么我们就少用一个机器人,譬如1连2,3,4,5,那么我们就少用一个机器人,用4个就行,所以说

二分匹配,有几个匹配,我们就少用几个,所以我们用匈牙利来解决

还有一个问题是在用匈牙利时,如果1连2,2连3,4又连2,2又连5,这样的话,我们在用匈牙利时,第一次走过2,第二次,4就不能在走2了,但根据提议是可以走的

所以我们用一下floyd,来让1直接连到3,这样4在连2时就可以了每一位1可以直接走到3了,不被占用2

所说匈牙利+floyd

#include<iostream>
using namespace std;
int map[505][505],vis[505],pa[505],m,n;
int sign[505];
int find(int x)
{
for(int i=1;i<=n;i++)
{
if(map[x][i]&&!vis[i])
{
vis[i]=1;
if(pa[i]==-1||find(pa[i]))
{
pa[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int x,y;
while(cin>>n>>m,n||m)
{
memset(map,0,sizeof(map));
for(int i=0;i<=n;i++)
{
pa[i]=-1;
}
int cou=0;
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
map[x][y]=1;
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(map[i][k]&&map[k][j])
map[i][j]=1;
}
}
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
if(find(i))
cou++;
}
cout<<n-cou<<endl;
}
return 0;
}

poj 2594 Treasure Exploration 匈牙利二分匹配+floyd相关推荐

  1. poj 2594 Treasure Exploration

    Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 6284   Accepted: 2 ...

  2. poj 2594 Treasure Exploration 最小路径覆盖

    题目链接:http://poj.org/problem?id=2594 建图很重要!!! 大致题意: 给出一个由n个顶点m条边组成的有向无环图.求最少可以同时存在多少路径,使得这些路径可以覆盖所有的点 ...

  3. POJ 2594 Treasure Exploration (可相交最小路径覆盖)

    题意 给你张无环有向图,问至少多少条路径能够覆盖该图的所有顶点--并且,这些路径可以有交叉. 思路 不是裸的最小路径覆盖,正常的最小路径覆盖中两个人走的路径不能有重复的点,而本题可以重复. 当然我们仍 ...

  4. POJ - 2594 Treasure Exploration(最小路径覆盖-二分图最大匹配+传递闭包)

    题目链接:点击查看 题目大意:给出一个有向图,现在需要让最少的机器人沿着图遍历所有点,求出最少需要机器人的数量,注意每个点可以重复遍历 题目分析:因为要遍历所有点,所以还是变成了二分图的最小路径覆盖问 ...

  5. POJ2594(二分匹配+Floyd求传递闭包)

    题目:Treasure Exploration 很明显是最小路径覆盖,只是必须先要求传递闭包就行了. #include <stdio.h> #include <string.h> ...

  6. hdu1526 二分匹配+ floyd

    题意: 有N个插座,M个用电器,和K种转换器(每种有无限个),问最少多少个用电器无法充电. 思路 :  总的电器数 减去 电器和插座的最大匹配数 我有的是map去映射每一个串,根据转换器建边,然后跑一 ...

  7. POJ Treasure Exploration 【DAG交叉最小路径覆盖】

    传送门:http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K To ...

  8. 【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)

    题干: Have you ever read any book about treasure exploration? Have you ever see any film about treasur ...

  9. 利用匈牙利算法Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES...

    首先介绍一下题意:已知,有N个学生和P门课程,每个学生可以选0门,1门或者多门课程,要求在N个学生中选出P个学生使得这P个学生与P门课程一一对应. 这个问题既可以利用最大流算法解决也可以用匈牙利算法解 ...

  10. POJ - 2446 Chessboard 二分匹配+建图

    题目链接 题意很简单,是二分匹配的一种常见的题型,问题就在于怎样转换到二分图上来. 首先对对n*m-k正常点进行编号,然后遍历查找每一个正常点的上下左右是否能连接(就是判断另个点是否也是正常的),如果 ...

最新文章

  1. Ubuntu12.04 安装MySQL简单步骤
  2. 初探swift语言的学习笔记七(swift 的关健词)
  3. java双链表基本方法_Java数据结构之双端链表原理与实现方法
  4. vue页面跳转后返回原页面初始位置
  5. 期货与期权(part1)--衍生品
  6. JS中的异步任务有哪些
  7. cadence导入dxf文件_Allegro中如何导入DXF文件
  8. 一位资深程序员大牛给Java初学者的学习建议
  9. python中list函数_list()函数以及Python中的示例
  10. Qt工作笔记-QCustomplot绘制表,实现输入定位功能
  11. 技术实践丨列存表并发更新时的锁等待问题原理
  12. 查看Linux服务器架构是x86还是arm
  13. React:工程化开发
  14. 微信飞机小游戏java_Shoot Plane 仿微信打飞机游戏的java实现
  15. Java自动化测试系列[v1.0.1][ZTestReport测试报告]
  16. win7从服务器拷文件提示错误,windows7无法复制文件提示“一个意外错误使您无法复制该文件”如何解决...
  17. 温暖和暖和的区别Java_国内冬天哪里比较暖和 冬天暖和的城市排名
  18. 接了个私单,结果对方有部分尾款迟迟不付,还好有留了个后门
  19. 2018年阅读随笔记录(持续更新)
  20. 唯品会密码JS解密与python模拟登录

热门文章

  1. 前++和后++引发的血案
  2. 【转】IE6 浏览器常见兼容问题 大汇总(23个)
  3. EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理
  4. Phoenix Tips (13) 统计收集
  5. 只能选择GridView中的一个CheckBox(单选CheckBox)
  6. Spring Boot 依赖包讲解
  7. linux同步Internet时间
  8. MonkeyRunner_API
  9. The labor day's schedule and the rate of process
  10. 每天一个实用小技巧!教你在Mac上共享WiFi密码