题面: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德州扑克的更多相关文章

  1. 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^( ...

  2. Supreme Number 2018沈阳icpc网络赛 找规律

    A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...

  3. 2019 徐州icpc网络赛 E. XKC's basketball team

    题库链接: https://nanti.jisuanke.com/t/41387 题目大意 给定n个数,与一个数m,求ai右边最后一个至少比ai大m的数与这个数之间有多少个数 思路 对于每一个数,利用 ...

  4. 2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂

    2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂 [Problem Description] ​ 已知\(f(n)=3\cdot f(n ...

  5. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H Skiing【拓扑排序,关键路径】

    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛  H Skiing In this winter holiday, Bob has a plan for skiing at the moun ...

  6. 计蒜客 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 ...

  7. 【2018ACM/ICPC网络赛】沈阳赛区

    这次网络赛没有打.生病了去医院了..尴尬.晚上回来才看了题补简单题. K  Supreme Number 题目链接:https://nanti.jisuanke.com/t/31452 题意:输入一个 ...

  8. 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 ...

  9. 南昌网络赛 H The Nth Item

    南昌网络赛The Nth Item 暴力快速幂+unordered_map记忆化 注意:记忆化不能写到快速幂求解函数里,不断调用函数会造成很大的时间浪费 #include<bits/stdc++ ...

随机推荐

  1. 130道ASP.NET面试题(二)

    71.什么是反射?答:动态获取程序集信息 72.用Singleton如何写设计模式答:static属性里面new ,构造函数private 73.什么是Application Pool?答:Web应用 ...

  2. python中程序的异常处理

    什么叫异常? 导致程序异常退出叫做异常 try...except...else 如果要抓取某种特定异常可以用except ERROR as e else:如果程序正常执行那么会执行else里面的代码 ...

  3. JAVA项目打包成可运行的exe程序

    前言:本篇文章为原创,转载请注明地址,谢谢. 我们一些时候,可能需要需要把我们完成的java打包,打成jar文件或者exe文件.这时候就请鄙人的这篇文章. 言尽于此,Let‘s go! 一.导出jar ...

  4. netty服务端的创建

    服务端的创建 示例代码 netty源码中有一个netty-example项目,不妨以经典的EchoServer作为楔子. // 步骤1 EventLoopGroup bossGroup = new N ...

  5. MyBatis批量更新动态sql

    <update id="updateDataKetState"> update ${tablespace}.IDEA_DATAKEY_STATE <trim pr ...

  6. C++中对C的扩展学习新增语法——引用

    引用 引用的好处: 1.引用的好处 C++使用结构体,不需要再使用 typedef. 2.值传递是将实参进行拷贝,赋值给形参,如果对象比较大,每次拷贝效率比较低,并且函数内部无法修改外部变量的值,能力 ...

  7. [多态] java笔记之多态性

    1.多态,说的是对象,说的不是类. 2. 3.多态 = polymorphism 4. 调用如下: 5. 6.口诀: 7.对象的向上转型: 8.对象的向下转型: 9.下面这个异常叫做ClassCast ...

  8. [error]The command could not be located because '/usr/bin' is not included

    配置HBase环境变量的时候写错了,写成了如下: 之后便报错 解决: 系统命令找不到时,通常是路径不对,直接在命令行用全路径即可,配置环境变量时,加入自己的环境变量,还要附带上之前的变量.如最后加上: ...

  9. opencv 2 Opencv数据结构与基本绘图

    基础图像容器Mat Mat 是一个类,又两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法不同,矩阵可以是不同的维数)的指针.矩阵头的尺 ...

  10. pyhton3 之 time模块实例小结

    一.实例1:实现秒表: import time print('按下回车开始计时,按下 Ctrl + C 停止计时.') while True: try: input() # 如果是 python 2. ...