题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1528

题意就是给有两个人有n张牌第二个人知道第一个人的牌的序列;

然后第二个人尽可能的让自己得更高的分,求这个最高分;

就是对方拿一张牌出来自己拿一张比他大的就得1分,如果相等就按红桃>黑桃>方块>梅花进行比较;

建图求最大匹配就可以了;注意:A是最大的牌。。。

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define N 220 int n, maps[N][N], vis[N], used[N]; struct node
{
int v,s;///v是纸牌的价值,s类型1:梅花 2:方块 3:黑桃 4:红桃;
} a[N], b[N]; void change(char s[], node &a)///传入地址才能改变它的值;
{
if(s[]<=''&&s[]>='')a.v=s[]-'';
if(s[]=='A')a.v=;///A是最大的牌;;;;;
if(s[]=='T')a.v=;
if(s[]=='J')a.v=;
if(s[]=='Q')a.v=;
if(s[]=='K')a.v=; if(s[]=='H')a.s=;
if(s[]=='S')a.s=;
if(s[]=='D')a.s=;
if(s[]=='C')a.s=;
}
bool Find(int u)
{
for(int i=; i<=n; i++)
{
if(!vis[i] && maps[u][i])
{
vis[i]=;
if(!used[i] || Find(used[i]))
{
used[i]=u;
return true;
}
}
}
return false;
}
int main()
{
int T;
char s[];
scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(maps, , sizeof(maps));
memset(used, , sizeof(used));
scanf("%d", &n);
for(int i=; i<=n; i++)
{
scanf("%s", s);
change(s, a[i]);
}
for(int i=; i<=n; i++)
{
scanf("%s", s);
change(s, b[i]);
for(int j=; j<=n; j++)///建立b和a的关系,当为1时说明第二个人的那张牌大一第一个人的那张牌;
{
if(b[i].v>a[j].v)
maps[i][j] = ;
if(b[i].v==a[j].v && b[i].s>a[j].s)
maps[i][j] = ;
}
}
int ans=;
for(int i=; i<=n; i++)
{
memset(vis, , sizeof(vis));
if(Find(i))
ans++;
}
printf("%d\n", ans);
}
return ;
}

Card Game Cheater---hdu1528(扑克建图求二分匹配)的更多相关文章

  1. We Need More Bosses CodeForces - 1000E(缩点 建图 求桥 求直径)

    题意: 就是求桥最多的一条路 解析: 先求连通分量的个数 然后缩点建图  求直径即可 #include <bits/stdc++.h> #define mem(a, b) memset(a ...

  2. Card Game Cheater HDU1528

    二分图最大匹配问题 扑克题还是用map比较方便 #include<bits/stdc++.h> using namespace std; #define MAXI 52 ]; ]; int ...

  3. Invitation Cards(邻接表+逆向建图+SPFA)

    Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 17538   Accepted: 5721 Description In ...

  4. HDU 4857 逃生 【拓扑排序+反向建图+优先队列】

    逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  5. 【ARC069F】Flags 2-sat+线段树优化建图+二分

    Description ​ 数轴上有 n 个旗子,第 ii 个可以插在坐标 xi或者 yi,最大化两两旗子之间的最小距离. Input ​ 第一行一个整数 N. ​ 接下来 N 行每行两个整数 xi, ...

  6. kuangbin带你飞 匹配问题 二分匹配 + 二分图多重匹配 + 二分图最大权匹配 + 一般图匹配带花树

    二分匹配:二分图的一些性质 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j ...

  7. HPU 3639--Hawk-and-Chicken【SCC缩点反向建图 &amp;&amp; 求传递的最大值】

    Hawk-and-Chicken Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. Codeforces Round #545 (Div. 2) E 强连通块 + dag上求最大路径 + 将状态看成点建图

    https://codeforces.com/contest/1138/problem/E 题意 有n个城市(1e5),有m条单向边(1e5),每一周有d天(50),对于每个城市假如在某一天为1表示这 ...

  9. Vulnerable Kerbals CodeForces - 772C【拓展欧几里得建图+DAG上求最长路】

    根据拓展欧几里得对于同余方程 $ax+by=c$ ,有解的条件是 $(a,b)|c$. 那么对于构造的序列的数,前一个数 $a$  和后一个数 $b$ ,应该满足 $a*x=b(mod m)$ 即 $ ...

随机推荐

  1. win8中如何禁用屏幕旋转的快捷键

    程序员通常会使用ctrl+alt+方向键 里编辑代码,特别对于使用eclipse的程序员,更是如此,但是win8却把这一快捷键给占用了,很不爽,如何办,很简单.直接上图: 2.但是发现禁用之后并没有解 ...

  2. sudo配置临时取得root权限

    系统中的普通用户有时需要root权限执行某种操作,要是使用su - root的话必须要知道root的密码,这是不安全的,所以有了sudo,root可以对/etc/sudoers做一定的配置,让普通用户 ...

  3. week 9 scenario testing

    1:How do you expect different personas to use your software?  What’s their need and their goals,  ho ...

  4. Mac下的常用Shell命令

    今天介绍一下在Mac的终端中一些常用的Shell命令: 1.查看当前工作目录的完整路径 pwd (pwd的原意是:print work directiory,而不是密码password的意思,呵呵) ...

  5. Asp.net操作Excel(终极方法NPOI)(转)

    原文:Asp.net操作Excel(终极方法NPOI) 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中 ...

  6. C# 串口通信总结

    在C#串口通信开发过程中有的产家只提供通信协议,这时候开发人员要自己根据协议来封装方法,有的产家比较人性化提供了封装好的通信协议方法供开发人员调用. 1.只提供通信协议(例如,今年早些时候开发的出钞机 ...

  7. android 开发 system/app目录下面有多个重复包名的apk,会不会冲突

    环境:已经拥有了root权限的android系统,我们的apk是开机启动 测试:将2个相同的版本拷贝到系统system/app目录下面 adb root #获取root权限,前提是已经开放了root权 ...

  8. android 开发 drawerlayout出现退不回去的情况

    问题原因: id_framelayout2 写在 id_linearlayout2 的后面了: 注意记得写: android:layout_gravity="start" 正确: ...

  9. 1491: [NOI2007]社交网络 - BZOJ

    Description Input Output输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度.Sample Input4 41 2 12 ...

  10. ansii、unicode、utf8 区别和关系

    本地化过程中涉及到源文件和目标文件的传输问题,这时候编码就显得很重要.中文的网页和操作系统中通常采用ANSI编码,这也是微软OS的一个字符标准.对于ANSI,不同的国家和地区制定了不同的标准,由此产生 ...