(简单匹配)Card Game Cheater -- hdu --1528
http://acm.hdu.edu.cn/showproblem.php?pid=1528
Card Game Cheater
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1559 Accepted Submission(s): 820
If Adam’s i:th card beats Eve’s i:th card, then Adam gets one point.
If Eve’s i:th card beats Adam’s i:th card, then Eve gets one point.
A card with higher value always beats a card with a lower value: a three beats a two, a four beats a three and a two, etc. An ace beats every card except (possibly) another ace.
If the two i:th cards have the same value, then the suit determines who wins: hearts beats all other suits, spades beats all suits except hearts, diamond beats only clubs, and clubs does not beat any suit.
For example, the ten of spades beats the ten of diamonds but not the Jack of clubs.
This ought to be a game of chance, but lately Eve is winning most of the time, and the reason is that she has started to use marked cards. In other words, she knows which cards Adam has on the table before he turns them face up. Using this information she orders her own cards so that she gets as many points as possible.
Your task is to, given Adam’s and Eve’s cards, determine how many points Eve will get if she plays optimally.
Each test case starts with a line with a single positive integer k <= 26 which is the number of cards each player gets. The next line describes the k cards Adam has placed on the table, left to right. The next line describes the k cards Eve has (but she has not yet placed them on the table). A card is described by two characters, the first one being its value (2, 3, 4, 5, 6, 7, 8 ,9, T, J, Q, K, or A), and the second one being its suit (C, D, S, or H). Cards are separated by white spaces. So if Adam’s cards are the ten of clubs, the two of hearts, and the Jack of diamonds, that could be described by the line
TC 2H JD
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<stdlib.h>
#include<string.h>
#include<map>
using namespace std; #define N 110 char s1[N][], s2[N][];
int G[N][N], n, used[N], p[N]; map<char, int>G1, G2; void InIt()
{
G1[''] = ; G2['C'] = ;
G1[''] = ; G2['D'] = ;
G1[''] = ; G2['S'] = ;
G1[''] = ; G2['H'] = ;
G1[''] = ;
G1[''] = ;
G1[''] = ;
G1[''] = ;
G1['T'] = ;
G1['J'] = ;
G1['Q'] = ;
G1['K'] = ;
G1['A'] = ;
} int Judge(char a[], char b[])
{
if(G1[b[]]>G1[a[]])
return ;
if(b[] == a[] && G2[b[]]>G2[a[]])
return ; return ;
} int Find(int u)
{
for(int i=; i<=n; i++)
{
if(G[u][i] && !used[i])
{
used[i] = ;
if(!p[i] || Find(p[i]))
{
p[i] = u;
return ;
}
}
}
return ;
} int hungary()
{
int ans = ; memset(p, , sizeof(p));
for(int i=; i<=n; i++)
{
memset(used, , sizeof(used));
int t = Find(i);
if(t) ans ++ ;
} return ans;
} int main()
{
int T; scanf("%d", &T); InIt(); while(T--)
{
int i, j; scanf("%d", &n); memset(s1, , sizeof(s1));
memset(s2, , sizeof(s2));
memset(G, , sizeof(G)); for(i=; i<=n; i++)
scanf("%s", s1[i]);
for(i=; i<=n; i++)
scanf("%s", s2[i]); for(i=; i<=n; i++) ///构图
for(j=; j<=n; j++)
{
int t = Judge(s1[i], s2[j]);
if(t)
G[i][j] = ;
} int ans = hungary(); printf("%d\n", ans);
}
return ;
}
(简单匹配)Card Game Cheater -- hdu --1528的更多相关文章
- HDOJ 1528 Card Game Cheater
版权声明:来自: 码代码的猿猿的AC之路 http://blog.csdn.net/ck_boss https://blog.csdn.net/u012797220/article/details/3 ...
- hdu 1528 Card Game Cheater (二分匹配)
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- (hdu step 6.3.5)Card Game Cheater(匹配的最大数:a与b打牌,问b赢a多少次)
称号: Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- Card Game Cheater(贪心+二分匹配)
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- Card Game Cheater
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1528 贪心模拟/二分图
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu----(1528)Card Game Cheater(最大匹配/贪心)
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu 1528 Card Game Cheater ( 二分图匹配 )
题目:点击打开链接 题意:两个人纸牌游戏,牌大的人得分.牌大:2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < ...
- POJ 2062 HDU 1528 ZOJ 2223 Card Game Cheater
水题,感觉和田忌赛马差不多 #include<cstdio> #include<cstring> #include<cmath> #include<algor ...
随机推荐
- Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'
项目报这个错误,后来查了,是缺少ojdbc,也就是java操作oracle的包,通过https://mvnrepository.com/artifact/oracle/ojdbc/1.4,可以找到该包 ...
- 20172306《Java程序设计》第五周学习总结
20172306 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第五章主要学习了if以及while的语句的运用 运算符:== 代表相等,是两个之间的内存地址 ...
- Continuous Subarray Sum LT523
Given a list of non-negative numbers and a target integer k, write a function to check if the array ...
- Spring Boot学习笔记:ApplicationEvent和ApplicationEventListener事件监听
采用事件监听的好处 以用户注册的业务逻辑为例,用户在填写完信息表单后,提交信息到后台,后台对用户信息进行处理,然后给用户返回处理结果的信息. 如上图所示,用户在注册时,后台需要处理一些系列流程,实际业 ...
- ubuntu14简介/安装/菜鸟使用手册
Linux拥有众多的发行版,可以分为两大类商业版和开源社区免费版.商业版以Radhat为代表,开源社区版以debian为代表. 简单的比较ubuntu与centos. Ubuntu 优点:丰富的 ...
- SpringBoot中文乱码解决方案
转载:https://blog.csdn.net/wangshuang1631/article/details/70753801 方法一,修改application.properties文件 增加如下 ...
- 浅谈 [Ljava.lang.Object 异常
http://blog.csdn.net/goodleiwei/article/details/7059567 主要原因:取出的是对象的数组,需要遍历单个的对象并获取想用的属性值
- Visual Studio 2015部署OpenCV
Visual Studio 2015的安装破解及OpenCV的安装和部署 平台:win10 X64+VS2015专业版 X64:vs2015.pro_chs+OpenCV 3.X:opencv-3.4 ...
- Python如何利用Xpath进行解析
用Python做网络爬虫的时候,会对网页的信息进行提取,笔者接触的有正则表达式,BeautifulSoup,Xpath,前面两个都是在国内能够使用的,而Xpath是Chrome的一个插件,因此需要“F ...
- 【转】Linux 如何通过命令仅获取IP地址
一同事的朋友正在参加笔试,遇到这么一个问题让他帮忙解决,结果同事又找到我帮他搞定.真是感慨:通讯发达在某些方面来说,真不知是不是好事啊!题目大致如下所示,一般我们使用ifconfig查看网卡信息,请问 ...