#include<stdio.h>

#include<string.h>

int map[100][100],mark[100],link[100],max2,k;

int find(int u) {

 int i;

 for(i=1;i<=k;i++) {

  if(!mark[i]&&map[u][i]) {

   mark[i]=1;

   if(!link[i]||find(link[i])) {

    link[i]=u;

    return 1;

   }

  }

 }return 0;

}

int seach(char c) {

 if(c=='C')

  return 1;

 if(c=='D')

  return 2;

 if(c=='S')

  return 3;

 if(c=='H')

  return 4;

 if(c=='T')

  return 10;

 if(c=='J')

  return 11;

 if(c=='Q')

  return 12;

 if(c=='K')

  return 13;

 if(c=='A')

  return 14;

 if(c>='2'&&c<='9')

  return c-'0';

}

int main() {

 int i,j,sum,ans,ans2,t,a,b,diyi[100],dier[100];

 char c,ch;

 scanf("%d",&t);

 while(t--) {

  scanf("%d",&k);

  memset(map,0,sizeof(map));

  memset(link,0,sizeof(link));

  for(i=1;i<=k;i++) {

   scanf(" %c%c",&c,&ch);

   a=seach(c);

   b=seach(ch);

      diyi[i]=(a-1)*4+b;

  }

  for(i=1;i<=k;i++) {

    scanf(" %c%c",&c,&ch);

   a=seach(c);

   b=seach(ch);

      dier[i]=(a-1)*4+b;

  }

  sum=0;

  for(i=1;i<=k;i++)

   for(j=1;j<=k;j++)

    if(dier[i]>diyi[j])

     map[i][j]=1;//重要的地方不能写成map[dier[i]][diyi[j]]=1这样会超时巧妙地将其转化为k个数的比较

    for(i=1;i<=k;i++) {

     memset(mark,0,sizeof(mark));

     sum+=find(i);

    }

    printf("%d\n",sum);

    }

 return 0;

}

hdu 1528 二分匹配的更多相关文章

  1. hdu 4169 二分匹配最大独立集 ***

    题意:有水平N张牌,竖直M张牌,同一方向的牌不会相交.水平的和垂直的可能会相交,求最少踢出去几张牌使剩下的牌都不相交. 二分匹配 最小点覆盖=最大匹配. 链接:点我 坐标点作为匹配的端点 #inclu ...

  2. hdu 5093 二分匹配

    /* 题意:给你一些冰岛.公共海域和浮冰,冰岛可以隔开两个公共海域,浮冰无影响 求选尽可能多的选一些公共海域点每行每列仅能选一个. 限制条件:冰山可以隔开这个限制条件.即*#*可以选两个 预处理: * ...

  3. Battle ships HDU - 5093二分匹配

    Battle shipsHDU - 5093 题目大意:n*m的地图,*代表海洋,#代表冰山,o代表浮冰,海洋上可以放置船舰,但是每一行每一列只能有一个船舰(类似象棋的車),除非同行或者同列的船舰中间 ...

  4. hdu 4685 二分匹配+强连通分量

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4685 题解: 这一题是poj 1904的加强版,poj 1904王子和公主的人数是一样多的,并且给出 ...

  5. H - Prince and Princess - HDU 4685(二分匹配+强连通分量)

    题意:有N个王子M个公主,王子喜欢一些公主,而且只能是王子喜欢的人,他们才可以结婚,现在让他们尽可能多的结婚的前提下找出来每个王子都可以和谁结婚. 分析:先求出来他们的最大匹配,因为给的数据未必是完备 ...

  6. HDU 3729 二分匹配 反向匹配

    题意: 给定 n个学生 说的 自己 考试排名的 可能范围 确定最多几个人说真话 如果有多种答案,输出字典序最大的那种( 要求字典序最大,所以solve中从最大字典序开始匹配) 思路: 题目给定  点 ...

  7. HDU -1151 二分匹配与有向无环图不相交最小路径覆盖数

    题意: 考虑一个小镇,那里的所有街道都是单向的,并且每条街道都从一个路口通往另一个路口.还众所周知,从一个十字路口开始,穿过城镇的街道,您将永远无法到达同一十字路口,即,城镇的街道没有环. 基于这些假 ...

  8. HDU 2603 二分匹配

    #include <queue>#include <vector>#include <cstdio>#include <cstring>#include ...

  9. Hdu 2389 二分匹配

    题目链接 Rain on your Parade Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 655350/165535 K (Ja ...

随机推荐

  1. ubuntu中mysql安装失败

    在ubuntu中mysql安装失败后,卸载重新安装还是安装失败,之后找了资料说是卸载的不干净,然后进行下面操作,重新安装成功. 解决办法如下: sudo rm /var/lib/mysql/ -Rsu ...

  2. ios项目中引用其他开源项目

    1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Libraries 引入.a文件.Target Depende ...

  3. Docker Hello World容器运行报错的解决办法

    费了好大力气从Docker官网下载了Docker Community Editor的安装镜像,Docker.dmg, 总共将近500MB,双击进行安装: 命令行里使用docker version查看版 ...

  4. 什么是Entitlement

    Entitlement(权限),可以想象成App里用于描述该App可以调用哪些服务的字符串.苹果的操作系统(mac os或者iOS)会通过检查这个串,决定这个应用是否可以调用相关功能.比如iCloud ...

  5. DROP FUNCTION - 删除一个函数

    SYNOPSIS DROP FUNCTION name ( [ type [, ...] ] ) [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP FUNCTION ...

  6. dmesg -检测和控制内核环缓冲

    NAME dmesg - print or control the kernel ring buffer 总览 dmesg [ -c ] [ -n 级别 ] [ -s 缓冲区大小 ] 描述 dmesg ...

  7. The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXX

    reference apt-key adv --recv-keys --keyserver keyserver.ubuntu.com XXXXXX apt-get update

  8. Dubbo框架的说明

    说实话,自己现在做的项目中有用到dubbo,但是我所负责的那一个模块,并没有涉及到dubbo,想学习一下dubbo,之前是没有学习完,这次继续... 一.背景知识总结 二.服务治理 三.Dubbo架构 ...

  9. Springboot 图标更换

    1.将自己的logo图片转为.ico格式的,命名必须为[favicon.ico] 2.将该图片直接放在src/main/resourecs目录下 3.重启项目,刷新一下浏览器缓存,就会发现图标更换了

  10. 全局/局部变量、宏、const、static、extern

    #pragma mark--全局变量和局部变量 根据变量的作用域,变量可以分为: 一.全局变量 1> 定义:在函数外面定义的变量2> 作用域:从定义变量的那一行开始,一直到文件结尾(能被后 ...