zoukankan      html  css  js  c++  java
  • Card Game Cheater HDU1528

    二分图最大匹配问题 

    扑克题还是用map比较方便 

    #include<bits/stdc++.h>
    using namespace std;
    #define MAXI 52
    int yd[MAXI][2];
    int xw[MAXI][2];
    int used[MAXI];
    int vis[MAXI];
    int n,m;
    
    map<char,int>mm;
    
    bool judge(int a,int b)
    {
       if( mm[xw[a][0]]>mm[ yd[b][0] ] )
        return true;
       else if(mm[xw[a][0]]==mm[ yd[b][0] ])
        return mm[xw[a][1]]>mm[ yd[b][1] ];
       else
        return false;
    }
    
    bool dfs(int  x)//x指夏娃数组下标
    {
        for(int j=1;j<=n;j++)//j是亚当的
        {
            if(judge(x,j)&&!used[j])
            {
                used[j]=1;
                if(!vis[j]||dfs(vis[j]) )
                  {
                      vis[j]=x;
                      return true;
                  }
            }
        }
        return false;
    }
    
    int find1(void)
    {    int ans=0;
         memset(vis,0,sizeof(vis));
         for(int i=1;i<=n;i++)//这里的i指的是夏娃的
           {
               memset(used,0,sizeof(used));
               if(dfs(i))ans++;
           }
           return ans;
    }
    
    int main()
    {
      int cas;
      cin>>cas;
      for(char i='2';i<='9';i++)
          mm[i]=i-'0';
      mm['T']=10;
      mm['J']=11;
      mm['Q']=12;
      mm['K']=13;
      mm['A']=14;
      mm['C']=1;
      mm['D']=2;
      mm['S']=3;
      mm['H']=4;
      int first=1;
      while(cas--)
      {
         scanf("%d",&n);
         char s[5];
         for(int i=1;i<=n;i++)
         {
             scanf("%s",s);
             yd[i][0]=s[0];
             yd[i][1]=s[1];
         }
          for(int i=1;i<=n;i++)
          {
              scanf("%s",s);
              xw[i][0]=s[0];
              xw[i][1]=s[1];
          }
          printf("%d
    ",find1());
      }
      return 0;
    }
  • 相关阅读:
    Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
    nyoj 635 Oh, my goddess
    nyoj 587 blockhouses
    nyoj 483 Nightmare
    nyoj 592 spiral grid
    nyoj 927 The partial sum problem
    nyoj 523 亡命逃窜
    nyoj 929 密码宝盒
    nyoj 999 师傅又被妖怪抓走了
    nyoj 293 Sticks
  • 原文地址:https://www.cnblogs.com/bxd123/p/10364756.html
Copyright © 2011-2022 走看看