HUST 2604

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cmath>
using namespace std; const int N = 300010;
const int MAXM = 300010;
const int INF = 0x3f3f3f3f; int dist[N<<1],mx[N],my[N],m,n;
vector<int> mp[N];
int que[N<<1],head,tail;
int bfs()
{
int i;
head=0;
tail=-1;
for(i=1; i<=n; i++)
if(mx[i]==-1) que[++tail]=i;
for(i=0; i<=m+n; i++) dist[i]=0;
int flag=0;
while(head<=tail)
{
int u=que[head++];
for(i=0; i<mp[u].size(); i++)
{
int v=mp[u][i];
if(dist[n+v]==0)
{
dist[n+v]=dist[u]+1;
if(my[v]!=-1)
{
dist[my[v]]=dist[n+v]+1;
que[++tail]=my[v];
}
else flag=1;
}
}
}
return flag;
}
int dfs(int u)
{
for(int i=0; i<mp[u].size(); i++)
{
int v=mp[u][i];
if(dist[u]+1==dist[v+n])
{
int t=my[v];
dist[v+n]=0;
if(t==-1||dfs(t))
{
my[v]=u;
mx[u]=v;
return 1;
}
}
}
return 0;
}
int H_K()
{
int i;
for(i=0; i<=n; i++)
mx[i]=-1;
for(i=0; i<=m; i++)
my[i]=-1;
int ans=0;
while(bfs())
{
for(i=1; i<=n; i++)
if(mx[i]==-1&&dfs(i)) ans++;
}
return ans;
} template <class T>
inline bool scan_d(T &ret)
{
char c;
int sgn;
if(c=getchar(),c==EOF) return 0; //EOF
while(c!='-'&&(c<'0'||c>'9')) c=getchar();
sgn=(c=='-')?-1:1;
ret=(c=='-')?0:(c-'0');
while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
ret*=sgn;
return 1;
}
inline void out(int x)
{
if(x>9) out(x/10);
putchar(x%10+'0');
} int main()
{
//int n,m;
//scanf("%d%d",&n,&m);
scan_d(n);
scan_d(m);
int u,v;
for(int i=0; i<m; ++i)
{
//scanf("%d%d",&u,&v);
scan_d(u);
scan_d(v);
mp[u].push_back(v);
} printf("%d\n",n-H_K()); return 0;
}

HK算法模板+小优化(跑的快一点点)的更多相关文章

  1. hdu 2389(二分图hk算法模板)

    Rain on your Parade Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 655350/165535 K (Java/Ot ...

  2. 小波学习之二(单层一维离散小波变换DWT的Mallat算法C++实现优化)--转载

    小波学习之二(单层一维离散小波变换DWT的Mallat算法C++实现优化)   在上回<小波学习之一>中,已经详细介绍了Mallat算法C++实现,效果还可以,但也存在一些问题,比如,代码 ...

  3. [Bzoj2039]小Z的袜子 (莫队算法模板题)

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 11866  Solved: 5318[Sub ...

  4. HDU 2389 Rain on your Parade 最大匹配(模板题)【HK算法】

    <题目链接> 题目大意:有m个宾客,n把雨伞,预计时间t后将会下大雨,告诉你每个宾客的位置和速度,每把雨伞的位置,问你最多几个宾客能够拿到伞. 解题分析: 本题就是要我们求人与伞之间的最大 ...

  5. 模板小程序】求小于等于N范围内的质数

    xiaoxi666 联系邮箱: xiaoxi666swap@163.com 博客园 首页 新随笔 联系 订阅 管理 [模板小程序]求小于等于N范围内的质数   1 //筛法求N以内的素数(普通法+优化 ...

  6. 图的最短路算法 Dijkstra及其优化

    单源最短路径算法 时间复杂度O(N2) 优化后时间复杂度为O(MlogN)(M为图中的边数 所以对于稀疏图来说优化后更快) 不支持有负权的图 #include<iostream> usin ...

  7. POJ 1273 Drainage Ditches(网络流dinic算法模板)

    POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...

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

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

  9. SSE图像算法优化系列二:高斯模糊算法的全面优化过程分享(一)。

    这里的高斯模糊采用的是论文<Recursive implementation of the Gaussian filter>里描述的递归算法. 仔细观察和理解上述公式,在forward过程 ...

随机推荐

  1. LeetCode——Reverse Integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you ...

  2. WCF 内存入口检查失败 Memory gates checking failed

    在做JC系统时,出现这样的错误: 出现该错误信息的原因是因为WCF服务激活之前,系统应该具有的最小内存量不足config文件中设置的百分比.我是在本机调试的时候出现的. 解决方法:        关闭 ...

  3. java工具类(四)之实现日期随意跳转

    Java实现日期随意跳转 项目开发过程中.须要进行订单提醒日期的设置.主要包含设置每月指定的日期或者指定的天数,代码例如以下: public static String DateOperation(S ...

  4. git svn 报错

    删除 openjdk 时 remove 了一大堆软件. 可能由于这个原因导致使用 git svn 命令时出现类似下面的错误. sam@sam-CW65S:pics$ git svn rebase Ca ...

  5. testng 工程报错java.net.SocketException

    报错如下: java.net.SocketException: Software caused connection abort: socket write error at java.net.Soc ...

  6. C语言restrict关键字的使用----可以用来优化代码

    C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取.对对象的存取都限定于基于由restr ...

  7. SELECT INSTR(120,0000); 真

    sql 排故 SELECT  INSTR(120,0000);  真

  8. ie下文件上传无权访问的问题

    最近项目遇到个问题,ie下文件上传无权访问,在网上找了很久才找到答案,原来是因为ie下不能用js触发input=file的点击事件,必须手动点击才可以.

  9. SWT.Shell

    import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWT_Shell ...

  10. ASHX入门教程

    新建web应用程序 其中添加的ashx包含ashx.CS 普通的web网站只包含ashx 新建webapplication应用 新建SampleHandler public class SampleH ...