zoukankan      html  css  js  c++  java
  • hdu 1528 Card Game Cheater (最小覆盖)

    点击打开链接

    给定A,B两组牌,让找出B最多能的多少分
    首先对牌的字符串全部转化成十进制数,然后以数字为点,
    B集合元素相对于A集合数字的大小关系为边,显然是典型的最小顶点覆盖问题 
    #include"stdio.h"
    #include"string.h"
    #define N 52
    int map[N][N],v[N],link[N];
    int A[N],B[N],t,n;
    int dfs(int k)
    {
        int i;
        for(i=1;i<=n;i++)
        {
            if(map[k][i]&&!v[i])
            {
                v[i]=1;
                if(link[i]==0||dfs(link[i]))
                {
                    link[i]=k;
                    return 1;
                }
            }
        }
        return 0;
    }
    int main()
    {
        char c,d,e;
        int i,j,vv,flag,ans;
        int ap,bp;
        
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            getchar();
            flag=1;
            ap=bp=0;
            for(i=0;i<2*n;i++)
            {
                scanf("%c%c%c",&c,&d,&e);
                if(c>='0'&&c<='9')
                    vv=c-'0';
                if(c=='T')vv=10;
                if(c=='J')vv=11;
                if(c=='Q')vv=12;
                if(c=='K')vv=13;
                if(c=='A')vv=14;
                vv*=100;
                if(d=='H')vv+=4;
                if(d=='S')vv+=3;
                if(d=='D')vv+=2;
                if(d=='C')vv+=1;
                if(flag)
                    A[++ap]=vv;
                else
                    B[++bp]=vv;
                if(e=='\n')
                    flag=0;
            }
            memset(map,0,sizeof(map));
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    if(A[i]<B[j])
                        map[j][i]=1;
                }
            }
            memset(link,0,sizeof(link));
            ans=0;
            for(i=1;i<=n;i++)
            {
                memset(v,0,sizeof(v));
                if(dfs(i))
                    ans++;
            }
            printf("%d\n",ans);
        }
        return 0;
    }



  • 相关阅读:
    图解SSH隧道功能
    su和sudo命令的用法
    Linux下下载百度网盘资料
    WPS Office 2019 for Linux来了
    Linux下的录屏软件Kazam
    用hdparm获取硬盘参数
    百度,你能不能有点节操?
    locate的基本用法
    Java class不分32位和64位
    Web站点抓取工具webhttrack
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365270.html
Copyright © 2011-2022 走看看