| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
原来结构这么简单,行列匹配,附16MS代码#include<iostream> #define SIZE 501 using namespace std; int n,k,x,y; int t[SIZE]; bool v[SIZE],a[SIZE][SIZE]; bool find(int x) { for(int i=0;n-i>0;i++) { if(v[i]==false&&a[x][i]==true) { v[i]=true; if(t[i]==-1||find(t[i])) { t[i]=x; return true; } } } return false; } int findMatch(void) { int count=0; for(int i=0;n-i>0;i++) { memset(v,false,sizeof(v)); if(find(i)) count++; } return count; } int main() { while(scanf("%d %d",&n,&k)!=EOF) { memset(t,-1,sizeof(t)); memset(a,false,sizeof(a)); for(int i=0;k-i>0;i++) { scanf("%d %d",&x,&y); a[x-1][y-1]=true; } printf("%d\n",findMatch()); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator