The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
题目链接: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的更多相关文章
- The Preliminary Contest for ICPC Asia Shenyang 2019 H
H. Texas hold'em Poker 思路:根据每个牌型分等级,然后排序按照等级优先,最大值次之,次大值,最后比较剩下值的和. #include<bits/stdc++.h> us ...
- The Preliminary Contest for ICPC Asia Shenyang 2019
传送门 B. Dudu's maze 题意: 是什么鬼东西???我读题可以读半小时QAQ 给出一张无向图,一个人在里面收集糖果,每个点都有一个糖果,特殊点除外.当他第一次进入特殊点时,会随机往一条边走 ...
- The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
题目链接:https://nanti.jisuanke.com/t/41406 思路:如果k的天数足够大,那么所有水池一定会趋于两种情况: ① 所有水池都是一样的水位,即平均水位 ② 最高水位的水池和 ...
- 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 ...
- 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]也不需要更新.如果不整取的话,后 ...
- The Preliminary Contest for ICPC Asia Shenyang 2019 D. Fish eating fruit(树形dp)
题意:求一棵树上所有路径和模3分别为0 1 2 的权值的和 思路:树形dp 增加一个记录儿子节点满足条件的个数的数组 不要放在一起dp不然答案跟新会有问题 #include <bits/stdc ...
- The Preliminary Contest for ICPC Asia Nanjing 2019 H. Holy Grail
题目链接:https://nanti.jisuanke.com/t/41305 题目说的很明白...只需要反向跑spfa然后输入-dis,然后添-dis的一条边就好了... #include < ...
- 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/ ...
- The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解
(施工中……已更新DF) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出 ...
随机推荐
- Hello 2019 D 素因子贡献法计算期望 + 概率dp + 滚动数组
https://codeforces.com/contest/1097/problem/D 题意 给你一个n和k,问n经过k次操作之后留下的n的期望,每次操作n随机变成一个n的因数 题解 概率dp计算 ...
- CF1168C And Reachability(DP)
首先定义 $g[i][j]$ 表示 $i$ 前面(不包括 $i$)第一个第 $j$ 位是 $1$ 的数的位置.可以随便转移. 再定义 $f[i][j]$ 表示 $i$ 前面(包括 $i$)第一个第 $ ...
- [探究] $\mu$函数的性质应用
参考的神仙An_Account的blog,膜一下. 其实就是一类反演问题可以用\(\mu\)函数的性质直接爆算出来. 然后其实性质就是一个代换: \[\sum_{d|n}\mu(d)=[n=1]\] ...
- [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 ...
- OAuth2.0 自我领悟
grant_type 授权模式 authorization_code 标准的Server授权模式,授权码模式 password 基于用户密码的授权模式,用户密码模式 client_credential ...
- Visual Studio 2017 无法启动,进程中却有devenv.exe运行的解决办法
双击Visual Studio 2017,系统没有响应,在任务管理器中却发现devenv.exe 已经在运行. 解决办法:启动services.msc.找到Visual Studio Standard ...
- XC7K325TFFG900 Device 内部结构图
- Python-读取文件内容
读取文件中的内容: with open('data.txt','r') as f: data_list = f.readlines()#每一行是一个字符串 data_list = [i.strip(' ...
- Laravel本地环境搭建:Homestead开发环境的部署
Laravel框架在php开发过程是不断进行优化的,当然也包括了本地环境的开发,下面我们就来具体看看laravel框架中的Homestead 开发环境的部署内容. 首先白以下几个概念 VirtualB ...
- Java8 新特性 Stream() 创建流
通过Controllere类的Stream()和parallelStream()创建流 //通过集合创建流 @Test public void test1() { String arr[] = new ...