题目:点击打开链接

题意:两个人纸牌游戏,牌大的人得分。牌大:2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q

< K < A 。值一样看花色, hearts (红心) > spades (黑桃) > diamond (方块) >

clubs (梅花)。问Eve 能得多少分。(每次得1分)

分析:将Eve的每张牌与Adam的所有牌比较,与所有比这张牌小的Adam的牌连边。

然后求最大匹配。

感想:几天前就写了,开始WA以为是对于王没有四种花色的处理应该分开。昨天

           突然发现问题根本不在那,因为这里面根本没说王,是数组开小了。

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std; char t1[15]={'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
int t2[15]={1,2,3,4,5,6,7,8,9,10,11,12,13};
struct node
{
int id;
char cha;
char type;
}card[60];
int n,cnt;
int match[60];
int vis[60];
int g[60][60]; bool judge(int x,int y)
{
if(card[x].type=='H' && card[y].type!='H')
return true;
else if(card[x].type=='S' && (card[y].type=='D'||card[y].type=='C'))
return true;
else if(card[x].type=='D' && card[y].type=='C')
return true;
else return false;
}
bool dfs(int u)
{
for(int i=1;i<=n;i++)
{
if(g[u][i] && !vis[i])
{
vis[i]=true;
if(match[i]==-1 || dfs(match[i]))
{
match[i]=u;
return true;
}
}
}
return false;
}
int main()
{
int T,i,j,k;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
getchar();
memset(card,0,sizeof(card));
memset(match,-1,sizeof(match));
memset(g,0,sizeof(g));
for(j=1;j<=n;j++)
{
card[j].cha=getchar();
for(k=0;k<13;k++)
if(card[j].cha==t1[k])
card[j].id=t2[k];
/*if(card[j].id==13)
{
if(j<=n-1)
getchar();
continue;
}*/
card[j].type=getchar();
if(j<=n-1)
getchar();
}
getchar();
for(j=n+1;j<=2*n;j++)
{
card[j].cha=getchar();
for(k=0;k<13;k++)
if(card[j].cha==t1[k])
card[j].id=t2[k];
/*if(card[j].id==13)
{
if(j<=n-1)
getchar();
continue;
}*/
card[j].type=getchar();
getchar();
for(i=1;i<=n;i++)
{
if(card[j].id>card[i].id)
g[j][i]=true;
else if(card[j].id==card[i].id && judge(j,i))
g[j][i]=true;
}
}
cnt=0;
for(i=n+1;i<=2*n;i++)
{
memset(vis,0,sizeof(vis));
if(dfs(i))
cnt++;
}
printf("%d\n",cnt);
}
return 0;
}

hdu 1528 Card Game Cheater ( 二分图匹配 )的更多相关文章

  1. hdu 1528 Card Game Cheater (二分匹配)

    Card Game Cheater Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. HDOJ 1528 Card Game Cheater

    版权声明:来自: 码代码的猿猿的AC之路 http://blog.csdn.net/ck_boss https://blog.csdn.net/u012797220/article/details/3 ...

  3. hdu 3829 Cat VS Dog 二分图匹配 最大点独立集

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Prob ...

  4. HDU 4685 Prince and Princess 二分图匹配+tarjan

    Prince and Princess 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4685 Description There are n pri ...

  5. HDU 2236 无题II(二分图匹配+二分)

    HDU 2236 无题II 题目链接 思路:行列仅仅能一个,想到二分图,然后二分区间长度,枚举下限.就能求出哪些边是能用的,然后建图跑二分图,假设最大匹配等于n就是符合的 代码: #include & ...

  6. TTTTTTTTTTTTTTTT hdu 5727 Necklace 阴阳珠 二分图匹配+暴力全排列

    Necklace Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  7. hdu 4619 Warm up 2 二分图匹配

    题目链接 给两种长方形, 水平的和垂直的, 大小都为1*2, n个水平的, m个垂直的, 给出它们的坐标. 水平的和垂直的可以相互覆盖, 但是同种类型的没有覆盖. 去掉一些长方形, 使得剩下的全部都没 ...

  8. HDU 1045 Fire Net 【二分图匹配】

    <题目链接> 题目大意: 这题意思是给出一张图,图中'X'表示wall,'.'表示空地,可以放置炮台,同一条直线上只能有一个炮台,除非有'X'隔开,问在给出的图中最多能放置多少个炮台. 解 ...

  9. HDU 5727 Necklace(全排列+二分图匹配)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 题意:现在有n个阳珠子和n个阴珠子,现在要把它们串成项链,要求是阴阳珠子间隔串,但是有些阴阳珠 ...

随机推荐

  1. HDU 2451 Simple Addition Expression

    题目大意:有一个关于 简单加法表达式  的定义告诉你,就是  选一个数字i  如果 i+(i+1)+(i+2) 它的和,没有任何一位进位的话,那就是 一个i的简单加法表达式,求小于n的表达式数目. 题 ...

  2. HDU 3486 Interviewe

    题目大意:给定n个数的序列,让我们找前面k个区间的最大值之和,每个区间长度为n/k,如果有剩余的区间长度不足n/k则无视之.现在让我们找最小的k使得和严格大于m. 题解:二分k,然后求RMQ检验. S ...

  3. Structs 2

    1  redirect.redirectaction和chain 的区别 当使用type="redirectAction" 或type="redirect"提交 ...

  4. jQuery.merge 源码阅读

    jQuery.merge(first,second) 概述 合并两个数组 返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素. 参数 first:第一个待处理数组,会改变其中 ...

  5. Objective-c 访问控制

    在Objective-c中定义类时,也可以使用类似于C++中public.private来修饰成员变量,如下: @intterface Test:NSObject{ @public int i; in ...

  6. NetBeans文件被锁,无法修改

    今天用NetBeans写有关Dojo的一个样例时,出现文件被锁,无法修改的情况.找了半天,但是就是不知道是什么原因,我就写在博客上记录下来

  7. TC基础使用指南(基于xbeta的TC配置文件)

    所有常用目录都可以通过ctrl+d加一个或几个字母的超快捷方式直接跳转到位. 按下BackSpace键,就可以进入到上一级目录 Ctrl+q 在右侧打开左侧选定文件,再按一次Ctrl+q退出 按 Ct ...

  8. cygwin org/apache/zookeeper/KeeperException

    以前用cdh3-0.20的hbase,在windows下面直接启动就行了,但是最近安装0.94以上的,就不行了. 报标题的错误,搜遍网络,几乎都是要加HBASE_CLASSPATH的,后来看老外的文章 ...

  9. Qt+SQLite数据加密的一种思路(内存数据库)

    了解Qt是比较早的,可是一直没有耐心去做一个练习.近期花了差不多两周时间做了次Qt开发练习,基本完成了Qt的入门,逃脱微软平台又迈出了几小步.Qt虽然是C++的,但开发应用是比较方便的,我觉得它在界面 ...

  10. logback自定义格式转换器

    创建自定义格式转换符有两步. 首先,必须继承ClassicConverter类.ClassicConverter对象负责从ILoggingEvent 提取信息,并产生一个字符串.例如,LoggerCo ...