题目链接:https://nanti.jisuanke.com/t/41408

题目意思很简单,就是个模拟过程。


 #include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <map>
#define rep(i,j,k) for(int i = (j); i <= (k); ++i)
#define per(i,j,k) for(int i = (j); i >= (k); --i)
#define rep__(i,j,k) for(int i = (j); i < (k); ++i)
#define per__(i,j,k) for(int i = (j); i > (k); --i)
#define inf 1e9
using namespace std;
typedef long long LL;
const int N = (int)1e5 + ; // map<char,int > mp;
struct node{
char name[];
int card[];
bool pair;
int rank_1,rank_2;
int sum; void fun(char* tmp){
rep__(i,,) card[i] = ;
rank_1 = rank_2 = ;
pair = false;
sum = ;
int i = ;
while(tmp[i] != '\0'){
if(tmp[i] == ''){ //
++card[];
i += ;
sum += ;//得出卡的总价值
}
else{
int k = ;
if(tmp[i] >= '' && tmp[i] <= '') k = tmp[i] - '' + ;
else if(tmp[i] == 'A') k = ;
else if(tmp[i] == 'J') k = ;
else if(tmp[i] == 'Q') k = ;
else if(tmp[i] == 'K') k = ;
++card[k];
++i;
sum += k;//得出卡的总价值
}
}
} void rank(){
bool com = true;//没有任何的等级
//最大的顺子
if(card[] && card[] && card[] && card[] && card[]){
rank_1 = ;
com = false;
}
else {
rep(i,,){
if(card[i] == ) rank_1 = ,sum += (-*i + i*),com = false;
else if(card[i] == ){
//rank_1 == 0 ? rank_1 = 7 : rank_1 = 7,rank_2 = 1;
if(rank_1 == ) rank_1 = ;
else rank_1 = ,rank_2 = ;
sum += (-*i + i*);
com = false;
}
else if(card[i] == ){
if(!pair){
rank_1 == ? rank_1 = : rank_2 = ;
sum += (-*i + i*);
pair = ;
com = false;
}
else{
rank_2 = ;
sum += (-*i + i*);
}
}
}
}
//都不相同
if(com){
rep(i,,){
if(i + > ) break;
if(card[i] && card[i + ] && card[i + ] && card[i + ] && card[i + ]){
rank_1 = ;
break;
}
}
}
} bool friend operator<(const node& a,const node& b){
if(a.rank_1 != b.rank_1) return a.rank_1 > b.rank_1;
else{
if(a.rank_2 != b.rank_2) return a.rank_2 > b.rank_2;
else{
if(a.sum != b.sum) return a.sum > b.sum;
else return strcmp(a.name,b.name) < ? : ;
}
}
}
}stu[N]; int main(){ ios::sync_with_stdio(false);
cin.tie();
// mp['A'] = 1; mp['2'] = 2; mp['3'] = 3; mp['4'] = 4; mp['5'] = 5; mp['6'] = 6;
// mp['7'] = 7; mp['8'] = 8; mp['9'] = 9; mp['J'] = 11; mp['Q'] = 12; mp['K'] = 13;
int n;
char tmp[];
while(cin >> n){ rep(i,,n){
cin >> stu[i].name >> tmp;
stu[i].fun(tmp);//装换成卡片
stu[i].rank();//等级
} sort(stu + ,stu + + n); rep(i,,n) cout << stu[i].name << endl;
} // getchar();getchar();
return ;
}
// << ' ' << stu[i].rank_1 << ' ' << stu[i].rank_2 << ' ' << stu[i].sum /* 7
AQ A2345
AW 58976
AS 5A397
AP AAA99
AL 222AA
AG AA229
AU 1010A23
*/

The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker的更多相关文章

  1. The Preliminary Contest for ICPC Asia Shenyang 2019 H

    H. Texas hold'em Poker 思路:根据每个牌型分等级,然后排序按照等级优先,最大值次之,次大值,最后比较剩下值的和. #include<bits/stdc++.h> us ...

  2. The Preliminary Contest for ICPC Asia Shenyang 2019

    传送门 B. Dudu's maze 题意: 是什么鬼东西???我读题可以读半小时QAQ 给出一张无向图,一个人在里面收集糖果,每个点都有一个糖果,特殊点除外.当他第一次进入特殊点时,会随机往一条边走 ...

  3. The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool

    题目链接:https://nanti.jisuanke.com/t/41406 思路:如果k的天数足够大,那么所有水池一定会趋于两种情况: ① 所有水池都是一样的水位,即平均水位 ② 最高水位的水池和 ...

  4. The Preliminary Contest for ICPC Asia Shenyang 2019 C. Dawn-K's water

    题目:https://nanti.jisuanke.com/t/41401思路:完全背包 #include<bits/stdc++.h> using namespace std; int ...

  5. The Preliminary Contest for ICPC Asia Shenyang 2019 C Dawn-K's water (完全背包)

    完全背包为什么要取到M,可以取到2*M嘛,这题需要整取,对于不能整取的背包容量,dp[k]=INF,以及dp[j-water[i].weight]=INF时,dp[j]也不需要更新.如果不整取的话,后 ...

  6. The Preliminary Contest for ICPC Asia Shenyang 2019 D. Fish eating fruit(树形dp)

    题意:求一棵树上所有路径和模3分别为0 1 2 的权值的和 思路:树形dp 增加一个记录儿子节点满足条件的个数的数组 不要放在一起dp不然答案跟新会有问题 #include <bits/stdc ...

  7. The Preliminary Contest for ICPC Asia Nanjing 2019 H. Holy Grail

    题目链接:https://nanti.jisuanke.com/t/41305 题目说的很明白...只需要反向跑spfa然后输入-dis,然后添-dis的一条边就好了... #include < ...

  8. The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力)

    The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/ ...

  9. The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解

    (施工中……已更新DF) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出 ...

随机推荐

  1. Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组

    https://codeforces.com/contest/1097/problem/D 题意 给你一个n和k,问n经过k次操作之后留下的n的期望,每次操作n随机变成一个n的因数 题解 概率dp计算 ...

  2. CF1168C And Reachability(DP)

    首先定义 $g[i][j]$ 表示 $i$ 前面(不包括 $i$)第一个第 $j$ 位是 $1$ 的数的位置.可以随便转移. 再定义 $f[i][j]$ 表示 $i$ 前面(包括 $i$)第一个第 $ ...

  3. [探究] $\mu$函数的性质应用

    参考的神仙An_Account的blog,膜一下. 其实就是一类反演问题可以用\(\mu\)函数的性质直接爆算出来. 然后其实性质就是一个代换: \[\sum_{d|n}\mu(d)=[n=1]\] ...

  4. [LeetCode] 215. Kth Largest Element in an Array 数组中第k大的数字

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  5. OAuth2.0 自我领悟

    grant_type 授权模式 authorization_code 标准的Server授权模式,授权码模式 password 基于用户密码的授权模式,用户密码模式 client_credential ...

  6. Visual Studio 2017 无法启动,进程中却有devenv.exe运行的解决办法

    双击Visual Studio 2017,系统没有响应,在任务管理器中却发现devenv.exe 已经在运行. 解决办法:启动services.msc.找到Visual Studio Standard ...

  7. XC7K325TFFG900 Device 内部结构图

  8. Python-读取文件内容

    读取文件中的内容: with open('data.txt','r') as f: data_list = f.readlines()#每一行是一个字符串 data_list = [i.strip(' ...

  9. Laravel本地环境搭建:Homestead开发环境的部署

    Laravel框架在php开发过程是不断进行优化的,当然也包括了本地环境的开发,下面我们就来具体看看laravel框架中的Homestead 开发环境的部署内容. 首先白以下几个概念 VirtualB ...

  10. Java8 新特性 Stream() 创建流

    通过Controllere类的Stream()和parallelStream()创建流 //通过集合创建流 @Test public void test1() { String arr[] = new ...