/*
这个问题将是每行一个x作为节点x,没有列y作为节点y,障碍物的坐标xy来自x至y的
边缘。图建的问题后,变成,拿得最少的点,因此,所有这些点与相邻边缘,即最小
点覆盖,与匈牙利算法来解决。
-------------------------------
定理:最小点覆盖数 = 最大匹配数。即求图的最大匹配就可以,匈牙利算法
-------------------------------
模板解说:
bool find(int v)
{
for(int i=1; i<=n; i++)
{
if(g[v][i] && !vis[i])假设结点i和v相邻而且未被查找过
{
vis[i] = true;标记结点i为已查找过
if(link[i] == 0 || find(link[i]))link[i] == 0表示i不再前一个匹配M中||i在匹配M中,可是从与i相邻的节点出发能够有增广路
{
link[i] = v;记录查找成功记录
return true;返回查找成功
}
}
}
return false;
}
-------------------------------
匈牙利算法介绍:
匈牙利算法是由匈牙利数学家Edmonds于1965年提出。因而得名。 匈牙利算法是基于
Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找
增广路径。它是一种用增广路径求二分图最大匹配的算法。
---------------------------------
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#define INF 0x3f3f3f3f using namespace std; int n,k,r,c;
int g[550][550];
bool vis[10010];
int link[10010]; bool find(int v)
{
for(int i=1; i<=n; i++)
{
if(g[v][i] && !vis[i])
{
vis[i] = true;
if(link[i] == 0 || find(link[i]))
{
link[i] = v;
return true;
}
}
}
return false;
} int main()
{
//freopen("input.txt","r",stdin);
int ans;
while(scanf("%d%d",&n,&k) != EOF)
{
memset(g,0,sizeof(g));
memset(link,0,sizeof(link));
for(int i = 0; i < k; i++)
{
scanf("%d%d",&r,&c);
g[r][c] = 1;
}
ans = 0;
for(int i=1; i<=n; i++)
{
memset(vis,0,sizeof(vis));//清空上次搜索时的标记
if(find(i))//从节点i尝试扩展
ans++;
}
printf("%d\n",ans);
}
return 0;
}

---------------------------------------------------------------------

战斗,不留情面。斗争。永不停歇~~~~~~~~~~

版权声明:本文博客原创文章,博客,未经同意,不得转载。

【网络流量-二部图最大匹配】poj3041Asteroids的更多相关文章

  1. windows下使用C#获取特定进程网络流量

    最近老板接了一个中船重工的项目,需要做一个有关海军软件系统的组件评估项目,项目中有一个子项目需要获取特定进程的各种系统参数,项目使用.NET平台.在获取特定进程各种系统参数时,其它诸如进程ID,进程名 ...

  2. 一个链接引发的血案---------服务器 IO及网络流量暴涨解决历程

    在这里介绍一次因为更改网站地址而引发服务器IO读取速度,网络流入流出速度暴涨10倍的解决经历. 环境:Ubuntu + Nginx + php-cgi + Wordpress 事情是这样的,现在网站使 ...

  3. CentOS7 监控进程网络流量工具安装

    服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量. 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控.这2个 ...

  4. 【读书笔记】iOS网络-测试与操纵网络流量

    一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连 ...

  5. Linux下网络流量实时监控工具

    Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面 ...

  6. [Android Pro] 网络流量安全测试工具Nogotofail

    reference to : http://www.freebuf.com/tools/50324.html 从严重的HeartBleed漏洞到苹果的gotofail 漏洞,再到最近的SSL v3 P ...

  7. Linux网络流量实时监控ifstat iftop命令详解

    ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat        eth0                eth1       KB /s i ...

  8. linux网络流量实时监控工具之iptraf

    这个工具还是很强大 linux网络流量实时监控工具之iptraf [我的Linux,让Linux更易用]IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的 ...

  9. Ubuntu 14.10 下网络流量实时监控ifstat iftop命令详解

    ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat eth0 eth1 KB/s in KB/s out KB/s in KB/s out 0 ...

随机推荐

  1. Oracle 闪回表实验

    工:闪回表实验 1.结构测试表flb_test,数据不小于10000行: TEST_USER1@PROD>create table flb_test(id number,dd date); Ta ...

  2. 这两个成员函数inline重新virtual种类

    inlineType表示在编译时扩展功能,随着在函数调用的函数体而出替换函数调用:和vitual它是c++多态的必要条件,但为了表现出多态性,您将需要等到执行,要知道什么是真正的函数调用.从表面上看这 ...

  3. [LeetCode62]Unique Paths

    题目: A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  4. [LeetCode203]Remove Linked List Elements

    题目: Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 ...

  5. 【Git使用具体解释】EGit使用具体解释

    此系列文章写给那些打算使用Git或正在使用Git,但对Git还不是非常理解的程序员们,希望能帮助大家在学习和使用Git的过程中少走弯路,并以最少的时间和代价来熟悉Git,让Git可以辅助很多其它的开发 ...

  6. 【Java基础】对象的具体创建过程

    所有的类(以Dog类为例)在第一次使用时,动态的加载到JVM中,当首次创建Dog对象时,或者是Dog类的静态方法.静态属性域在第一次被访问时,JVM解释器查找到classpath,定位到Dog.cla ...

  7. SQLServer RESOURCE_SEMAPHORE 等待状态

    原文:SQLServer RESOURCE_SEMAPHORE 等待状态 概述: 当一个SQLServer实例运行得很慢的时候,应该做一些检查,如检查等待状态.最好的方法是一开始就建立一个性能基线,以 ...

  8. Unity2D实现贴图凹凸感并接受实时光照效果

    先看终于效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  9. Hadoop Hive sql 语法详细解释

    Hive 是基于Hadoop 构建的一套数据仓库分析系统.它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,能够将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  10. 6-06. 理性任务调度(25)(拓扑排序啊 ZJU_PAT)

    主题链接:http://pat.zju.edu.cn/contests/ds/6-06 假定一个project项目由一组子任务构成,子任务之间有的能够并行运行.有的必须在完毕了其他一些子任务后才干运行 ...