标签:des style blog http color java os io strong
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1272 Accepted Submission(s): 675
1 #include<cstring> 2 #include<cstdio> 3 #define init(a) memset(a,0,sizeof(a)); 4 #define maxn 27 5 int n,m; 6 char ad[maxn][3],ev[maxn][3]; 7 bool mat[maxn][maxn],vis[maxn]; 8 int adm[maxn]; 9 void work(char *s){ 10 switch(s[0]){ 11 case ‘T‘: s[0]=‘A‘; break; 12 case ‘J‘: s[0]=‘B‘; break; 13 case ‘Q‘: s[0]=‘C‘; break; 14 case ‘K‘: s[0]=‘D‘; break; 15 case ‘A‘: s[0]=‘E‘; break; 16 default : break; 17 } 18 switch(s[1]) 19 { 20 case ‘C‘: s[1]=‘A‘; break; 21 case ‘D‘: s[1]=‘B‘; break; 22 case ‘S‘: s[1]=‘C‘; break; 23 case ‘H‘: s[1]=‘D‘; break; 24 default : break; 25 } 26 } 27 void input(int a,char ss[][3]) 28 { 29 for(int i=1;i<=a;i++){ 30 scanf("%s",ss[i]); 31 work(ss[i]); 32 } 33 } 34 int match(int x) 35 { 36 for(int i=1;i<=n;i++) 37 { 38 if(!vis[i]&&mat[x][i]){ 39 vis[i]=1; 40 if(adm[i]==0||match(adm[i])) 41 { 42 adm[i]=x; 43 return 1; 44 } 45 } 46 } 47 return 0; 48 } 49 int main(){ 50 int test; 51 //freopen("test.in","r",stdin); 52 scanf("%d",&test); 53 while(test--){ 54 scanf("%d",&n); 55 input(n,ad); 56 input(n,ev); 57 init(mat); 58 init(adm); 59 //构造一个匹配图 60 for(int i=1;i<=n;i++){ //eve 61 for(int j=1;j<=n;j++){ //admin 62 if(strcmp(ev[i],ad[j])>0) 63 mat[i][j]=1; 64 } 65 } 66 int ans=0; 67 for(int i=1;i<=n;i++){ 68 init(vis); 69 ans+=match(i); 70 } 71 printf("%d\n",ans); 72 } 73 return 0; 74 }
hdu----(1528)Card Game Cheater(最大匹配/贪心)
标签:des style blog http color java os io strong
原文地址:http://www.cnblogs.com/gongxijun/p/3930039.html