bzoj1191: [HNOI2006]超级英雄Hero
2017-07-04 22:14
274 查看
裸的二分图匹配,从前往后匹配,匹配不到直接跳出。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read() { char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') {f=(f<<1)+(f<<3)+ch-'0'; ch=getchar();} return f; } int n,m,tot,head[1005]; struct node { int from; int to; int next; }edge[4005]; void add(int u,int v) { edge[tot].from=u; edge[tot].to=v; edge[tot].next=head[u]; head[u]=tot++; } bool vis[1005];int lk[1005]; bool find(int x) { for(int i=head[x];i!=-1;i=edge[i].next) { int v=edge[i].to; if(!vis[v]) { vis[v]=1; if(lk[v]==-1||find(lk[v])) { lk[v]=x; return 1; } } } return 0; } int main() { memset(head,-1,sizeof(head)); memset(lk,-1,sizeof(lk)); n=read();m=read();int x,y; for(int i=1;i<=m;i++) { x=read();y=read(); add(i,x); add(i,y); memset(vis,0,sizeof(vis)); if(!find(i)) { printf("%d",i-1); return 0; } } printf("%d",m); return 0; }
相关文章推荐
- BZOJ1191 [HNOI2006]超级英雄Hero
- BZOJ 1191: [HNOI2006]超级英雄Hero【二分图匹配】
- BZOJ 1191 HNOI 2006 超级英雄Hero 二分图最大匹配
- bzoj1191 [HNOI2006]超级英雄Hero(二分图最大匹配)
- 【BZOJ】1191 【HNOI2006】超级英雄Hero
- BZOJ[1191][HNOI2006]超级英雄Hero 匈牙利算法
- 【BZOJ1191】[HNOI2006]超级英雄Hero【二分图匹配】
- BZOJ1191(HNOI2006)[超级英雄Hero]--二分图最大匹配
- BZOJ 1191 [HNOI2006]超级英雄Hero(二分图匹配)
- 【二分图】【最大匹配】【匈牙利算法】bzoj1191 [HNOI2006]超级英雄Hero
- [BZOJ 1191][HNOI2006]超级英雄Hero(二分图匹配)
- bzoj1191 [HNOI2006]超级英雄Hero
- bzoj1191 [HNOI2006]超级英雄Hero
- bzoj[1191]: [HNOI2006]超级英雄Hero
- 【HNOI2006】【BZOJ1191】超级英雄Hero
- BZOJ 1191: [HNOI2006]超级英雄Hero 二分匹配
- BZOJ1191 [HNOI2006]超级英雄Hero
- [bzoj1191][HNOI2006]超级英雄Hero
- bzoj1191: [HNOI2006]超级英雄Hero 裸二分匹配
- bzoj 1191: [HNOI2006]超级英雄Hero