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;
    }
  • 相关阅读:
    Java日志框架Slf4j+Log4j入门
    Pandas常用函数入门
    Noip2018 倒计时
    【缩点】洛谷P3387
    用Visio进行数据库建模、设计和实现
    SQL Server 教程
    MS TransactSQL 存储过程的解密算法
    泛型编程
    网络实现语音
    Visual C++ 例程下载
  • 原文地址:https://www.cnblogs.com/bxd123/p/10364756.html
Copyright © 2011-2022 走看看