nyoj-239

来源:互联网 发布:windows xp sp3 纯净版 编辑:程序博客网 时间:2024/04/29 08:30

这题是用vector做的

刚开始是数组做的,超时

#include<string.h>#include<stdio.h>#include<vector>using namespace std;int n,link[512];vector<int> g[512];bool v[512];bool dfs(int x){for(int i=0;i<g[x].size();++i){int k=g[x][i];if(!v[k]){v[k]=true;if(link[k]==-1 || dfs(link[k])){link[k]=x;return true;}}}return false;}int Xiong(){memset(link,-1,sizeof(link));int cnt=0;for(int i=1;i<=n;++i){memset(v,false,sizeof(v));if(dfs(i))cnt++;}return cnt;}int main(){int t,i;//freopen("d:\\test.txt","r",stdin);scanf("%d",&t);while(t--){int m;scanf("%d%d",&n,&m);for(i=1;i<=n;++i)g[i].clear();while(m--){int a,b;scanf("%d%d",&a,&b);g[a].push_back(b);}printf("%d\n",Xiong());}return 0;}