由于路径可以有重复的点,所以需要将间接相连的点连接

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. #include<iostream>
  5. using namespace std;
  6. //顶点编号从0开始的
  7. const int MAXN=;
  8. int uN,vN;//u,v数目
  9. int g[MAXN][MAXN];
  10. int linker[MAXN];
  11. bool used[MAXN];
  12. bool dfs(int u)//从左边开始找增广路径
  13. {
  14. int v;
  15. for(v=;v<vN;v++)//这个顶点编号从0开始,若要从1开始需要修改
  16. if(g[u][v]&&!used[v])
  17. {
  18. used[v]=true;
  19. if(linker[v]==-||dfs(linker[v]))
  20. {//找增广路,反向
  21. linker[v]=u;
  22. return true;
  23. }
  24. }
  25. return false;//这个不要忘了,经常忘记这句
  26. }
  27. int hungary()
  28. {
  29. int res=;
  30. int u;
  31. memset(linker,-,sizeof(linker));
  32. for(u=;u<uN;u++)
  33. {
  34. memset(used,,sizeof(used));
  35. if(dfs(u)) res++;
  36. }
  37. return res;
  38. }
  39. void floyed(int n)//求传递闭包
  40. {
  41. for(int i=;i<n;i++)
  42. for(int j=;j<n;j++)
  43. {
  44. if(g[i][j]==)
  45. {
  46. for(int k=;k<n;k++)
  47. {
  48. if(g[i][k]==&&g[k][j]==)
  49. {
  50. g[i][j]=;
  51. break;
  52. }
  53. }
  54. }
  55. }
  56. }
  57. int main()
  58. {
  59. int n,m;
  60. int u,v;
  61. while(scanf("%d%d",&n,&m))
  62. {
  63. if(n==&&m==)break;
  64. uN=vN=n;
  65. memset(g,,sizeof(g));
  66. while(m--)
  67. {
  68. scanf("%d%d",&u,&v);
  69. u--;v--;
  70. g[u][v]=;
  71. }
  72. floyed(n);
  73. printf("%d\n",n-hungary());
  74. }
  75. return ;
  76. }

poj 2594 传递闭包+最大路径覆盖的更多相关文章

  1. K - Treasure Exploration - POJ 2594(最小路径覆盖+闭包传递)

    题意:给一个有向无环图,求出来最小路径覆盖,注意一个点可能会被多条路径重复 分析:因为有可能多条路径走一个点,可又能会造成匹配的不完全,所以先进行一次闭包传递(floyd),然后再用二分匹配的方法求出 ...

  2. POJ 2594 (传递闭包 + 最小路径覆盖)

    题目链接: POJ 2594 题目大意:给你 1~N 个点, M 条有向边.问你最少需要多少个机器人,让它们走完所有节点,不同的机器人可以走过同样的一条路,图保证为 DAG. 很明显是 最小可相交路径 ...

  3. POJ 2594 传递闭包的最小路径覆盖

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

  4. Treasure Exploration POJ - 2594 【有向图路径可相交的最小路径覆盖】模板题

    Have you ever read any book about treasure exploration? Have you ever see any film about treasure ex ...

  5. POJ 3020 (二分图+最小路径覆盖)

    题目链接:http://poj.org/problem?id=3020 题目大意:读入一张地图.其中地图中圈圈代表可以布置卫星的空地.*号代表要覆盖的建筑物.一个卫星的覆盖范围是其周围上下左右四个点. ...

  6. POJ-2594 Treasure Exploration floyd传递闭包+最小路径覆盖,nice!

    Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8130   Accepted: 3 ...

  7. Taxi Cab Scheme POJ - 2060 二分图最小路径覆盖

    Running a taxi station is not all that simple. Apart from the obvious demand for a centralised coord ...

  8. POJ 1422 DAG最小路径覆盖

    求无向图中能覆盖每个点的最小覆盖数 单独的点也算一条路径 这个还是可以扯到最大匹配数来,原因跟上面的最大独立集一样,如果某个二分图(注意不是DAG上的)的边是最大匹配边,那说明只要取两个端点只要一条边 ...

  9. POJ 2594 —— Treasure Exploration——————【最小路径覆盖、可重点、floyd传递闭包】

    Treasure Exploration Time Limit:6000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

随机推荐

  1. jQuery.cookie.js

    一.jQuery.Cookie.js插件是一个轻量级的Cookie管理插件. 下载:http://github.com/carhartl/jquery-cookie/zipball/v1.4.1 特别 ...

  2. JavaScrip操作Cookie

    //生成cookie function addCookie(sName, sValue, day) { var expireDate = new Date(); expireDate.setDate( ...

  3. linux的cgroup控制

    cgroup:control group-控制群组:将用户(的进程)加入某个群组(又叫控制器controller), 通过 指定群组对资源-cpu 内存 network等的使用,来限制用户对计算机资源 ...

  4. Linux下远程cp命令scp

    2014-2.19  PS1.在用此命令cpLinux与Linux之间的数据时发现有些服务器上默认没有安装scp但用yum -y install scp提示么有这样的包 后来发现原来scp工具的安装包 ...

  5. Wormholes(Bellman-ford)

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 33008   Accepted: 12011 Descr ...

  6. VS2010 使用时选择代码或双击时出错,点击窗口按钮后VS自动重启问题

    VS2010 使用时选择代码或双击时出错崩溃,点击窗口按钮后VS自动重启问题 下载补丁,打上补丁之后,重启电脑,解决了问题. WindowsXP的下载地址:Windows XP 更新程序 (KB971 ...

  7. 一个csrf实例漏洞挖掘带你了解什么是csrf

    [-]CSRF是个什么鬼? |___简单的理解: |----攻击者盗用了你的身份,以你的名义进行某些非法操作.CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的财产. |___CSRF攻 ...

  8. FZU 1649 Prime number or not米勒拉宾大素数判定方法。

    C - Prime number or not Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & % ...

  9. Junit4测试

    1.junit初级入门 2.常用注解 3.运行流程 4.测试套件使用 5.参数化设置

  10. python将json格式的数据转换成文本格式的数据或sql文件

    python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon ...