2019沈阳icpc网络赛H德州扑克
题面:https://nanti.jisuanke.com/t/41408
题意:A,2,3,4,5,6,7,8,9,10,J,Q,K,13张牌,无花色之分,val为1~13。
给n个人名+n个牌,输出人名的ranklist

比较规则:
皇家顺最大
顺子第二,都是顺看最大牌的val
四条第三,先看四张相同牌的val,再看剩下那张牌的val
葫芦第四,先看三张相同牌的val,再看两张相同牌的val
三条第五,先看三张相同牌的val,再看剩下两张牌的val之和
两对第六,先看大的两张相同牌的val,再看小的两张相同牌的val,再看剩下一张牌的val
一对第七,先看两张相同牌的val,再看剩下三张牌的val之和
高牌第八,看五张牌的val之和
比较完还分不出来两幅牌谁赢,看名字,字典序小的赢(不会有相同的名字)。
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
typedef long long ll;
const int maxn=1e5+;
struct node
{
string name;
int ranks;
int val;
int a[];
}p[maxn]; pair<int,int> calrank(int e,int d,int c,int b,int a)
{
//a>=b>=c>=d>=e
pair<int,int> pa;
if(a==&&b==&&c==&&d==&&e==){pa.first=;pa.second=;}
else if(a-b==&&b-c==&&c-d==&&d-e==){pa.first=;pa.second=a;}
else if(b==e){pa.first=;pa.second=b*+a;}
else if(a==d){pa.first=;pa.second=a*+e;}
else if(a==c&&d==e){pa.first=;pa.second=a*+d;}
else if(a==b&&c==e){pa.first=;pa.second=c*+a;}
else if(a==c){pa.first=;pa.second=a*+d+e;}
else if(b==d){pa.first=;pa.second=b*+a+e;}
else if(c==e){pa.first=;pa.second=c*+a+b;}
else if(a==b&&c==d){pa.first=;pa.second=a*+c*+e;}
else if(a==b&&d==e){pa.first=;pa.second=a*+e*+c;}
else if(b==c&&d==e){pa.first=;pa.second=b*+d*+a;}
else if(a==b){pa.first=;pa.second=a*+c+d+e;}
else if(b==c){pa.first=;pa.second=b*+a+d+e;}
else if(c==d){pa.first=;pa.second=c*+a+b+e;}
else if(d==e){pa.first=;pa.second=d*+a+b+c;}
else{pa.first=;pa.second=a+b+c+d+e;}
return pa;
} bool cmp(node a,node b)
{
if(a.ranks==b.ranks)
{
if(a.val==b.val)return a.name<b.name;
return a.val>b.val;
}
else return a.ranks<b.ranks; }
bool cmp2(int a,int b)
{
return a<b;
}
int main()
{
ios::sync_with_stdio(false);
int n;
while(cin>>n)
{
for(int i=;i<=n;i++)
{
string pai;
cin>>p[i].name>>pai;
for(int k=,j=;pai[k];k++)
{
if(pai[k]=='')continue;
if(pai[k]>=''&&pai[k]<='')p[i].a[j]=pai[k]-;
else if(pai[k]=='A')p[i].a[j]=;
else if(pai[k]=='J')p[i].a[j]=;
else if(pai[k]=='Q')p[i].a[j]=;
else if(pai[k]=='K')p[i].a[j]=;
else if(pai[k]=='')p[i].a[j]=;
j++;
}
sort(p[i].a,p[i].a+,cmp2);
pair<int,int>pa2;
pa2=calrank(p[i].a[],p[i].a[],p[i].a[],p[i].a[],p[i].a[]);
p[i].ranks=pa2.first;
p[i].val=pa2.second;
}
sort(p+,p+n+,cmp);
for(int i=;i<=n;i++)
cout<<p[i].name<<endl;
}
return ;
}
我太难了
...
2019沈阳icpc网络赛H德州扑克的更多相关文章
- 2019 南昌ICPC网络赛H The Nth Item
The Nth Iteam 题意:F(0)=1,F(1)=1,F(n)=3*F(n-1)+2*F(n-2) (n>=2) ,F(n) mod 998244353.给出Q跟N1,Ni=Ni-1^( ...
- Supreme Number 2018沈阳icpc网络赛 找规律
A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...
- 2019 徐州icpc网络赛 E. XKC's basketball team
题库链接: https://nanti.jisuanke.com/t/41387 题目大意 给定n个数,与一个数m,求ai右边最后一个至少比ai大m的数与这个数之间有多少个数 思路 对于每一个数,利用 ...
- 2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂
2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂 [Problem Description] 已知\(f(n)=3\cdot f(n ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H Skiing【拓扑排序,关键路径】
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H Skiing In this winter holiday, Bob has a plan for skiing at the moun ...
- 计蒜客 41391.query-二维偏序+树状数组(预处理出来满足情况的gcd) (The Preliminary Contest for ICPC Asia Xuzhou 2019 I.) 2019年徐州网络赛)
query Given a permutation pp of length nn, you are asked to answer mm queries, each query can be rep ...
- 【2018ACM/ICPC网络赛】沈阳赛区
这次网络赛没有打.生病了去医院了..尴尬.晚上回来才看了题补简单题. K Supreme Number 题目链接:https://nanti.jisuanke.com/t/31452 题意:输入一个 ...
- ACM-ICPC 2018 沈阳赛区(网络赛)
D.Made In Heaven One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with he ...
- 南昌网络赛 H The Nth Item
南昌网络赛The Nth Item 暴力快速幂+unordered_map记忆化 注意:记忆化不能写到快速幂求解函数里,不断调用函数会造成很大的时间浪费 #include<bits/stdc++ ...
随机推荐
- 史上最详细的C语言冒泡排序算法
未经同意,请勿转载. void bubbing(){ ] = {,,,,,,,,,};//define init the array //going to the exinternal loop,st ...
- 使用VSCode调试Egret项目中的ts代码
发布一次Android项目后,会在代码里,生成对应的.map文件.这样就可以在编辑器里或是Chrome里面对相应的TS文件进行断点调试了. 实际只要在tsconfig.json里面配置一下," ...
- Spring注解@Configuration是如何被处理的?
从SpringApplication开始 一般情况下启动SpringBoot都是新建一个类包含main方法,然后使用SpringApplication.run来启动程序: @SpringBootApp ...
- 产品分析:华为短信APP体验的问题和建议
- 小白学 Python 爬虫(1):开篇
人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...
- hdu 1171 Big Event in HDU (01背包, 母函数)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- mysql初级了解
mysql是一个关系型数据库系统,可以存放若干个数据库,每个数据库中 可以存放若干张表,每张表中可以存放若干条记录 基本代码: 1.查看数据库 show databases: 2.创建数据库 ...
- Openlayers 实现轨迹播放/暂停/重新播放/从点击处播放/提速/减速
说明: 我的需求是需要实现轨迹播放/暂停/重新播放/从点击处播放,因此封装了一个类 解决方案: 1.初始化:主要是处理一下图层以及数据,通过插值构造一个全局数组 /** * @description ...
- Openlayers Overlay使用心得
Overlay在Openlayers里是浮动层的概念,区别于vector这样的图层,通常用于弹窗.撒点.以及解决加载icon样式不支持的gif等格式图片. 此次用overlay的过程中遇到很多问题,在 ...
- MySQL基础知识面试与答案
1.Mysql 的存储引擎,myisam和innodb的区别. 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁,适合小数据,小并发. 2.innodb是支持事务 ...