bzoj1191

Posted mikuknight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1191相关的知识,希望对你有一定的参考价值。

二分图匹配

一个一个匹配过去,遇到不能匹配的就是能通过的最大题数

#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
int n,m,ans,vis[1004],res[1004],map[1003][1003];

inline int read(){
    char ch=getchar();int k=0;
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch)){k=(k<<1)+(k<<3)+ch-0;ch=getchar();}
    return k;
}

bool find(int x){
    for(int i=1;i<=m;i++){
        if(!vis[i]&&map[x][i]){
            vis[i]=1;
            if(!res[i]||find(res[i])){
                res[i]=x;return 1;
            }
        }
    }
    return 0; 
}

int main(){
    m=read(),n=read(),ans=n;
    for(int i=1;i<=n;i++){
        int a;
        a=read();map[i][a+1]=1;
        a=read();map[i][a+1]=1;
    }
    for(int ii=1;ii<=n;ii++){
        memset(vis,0,sizeof(vis));
        if(!find(ii)) {ans=ii-1;break;}
    }
    printf("%d\n",ans);
    return 0;
} 

 

以上是关于bzoj1191的主要内容,如果未能解决你的问题,请参考以下文章

bzoj 1191

bzoj 1191

bzoj1191

bzoj 1191

bzoj 1191 超级英雄Hero

BZOJ 1191 超级英雄 Hero 题解