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$,出 ...
随机推荐
- 微信小程序的模板消息与小程序订阅消息
小程序订阅消息 功能介绍 消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验. 订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳 ...
- [LeetCode] 843. Guess the Word 猜单词
This problem is an interactive problem new to the LeetCode platform. We are given a word list of uni ...
- 微信小程序登录那些事
最近团队在开发一款小程序,都是新手,一边看文档,一边开发.在开发中会遇到各种问题,今天把小程序登录这块的流程整理下,做个记录. 小程序的登录跟平时自己APP这种登录验证还不太一样,多了一个角色,那就是 ...
- Java开发:字符串切割split函数——切割符转码注意事项
一.问题如下: 1.先对一个已有字符串进行操作,使用 ; 进行分割: //示例字符串 String string="sr1.db1.tb1.df1;sr2.db2.tb2.d ...
- <a href="javascript:;">的用法说明
<a href="javascript:;">的用法说明 1.标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 UR ...
- Windows10 64位部署odoo12开发环境
预装Windows10 64位家庭版电脑一台 2019年7月 安装Python,这里的版本选择上有个坑,不要装最新的Python 3.7.x,原因是odoo12依赖pillow 4.0.0库,而这个4 ...
- Spring事务调用类自己方法失效解决办法和原因
问题 正常情况下,我们都是在controller里调用service里的方法,这个方法如果需要加事务,就在方法上加上@Transactional,这样是没问题的,事务会生效. 可是如果像下面这样,绕以 ...
- HDU 5047 Sawtooth 找规律+拆分乘
Sawtooth Think about a plane: ● One straight line can divide a plane into two regions. ● Two lines ...
- [跨域问题]ssm+vue前后台分离跨域问题解决方法
跨域未解决时: Access to XMLHttpRequest at 'http://localhost:8080/vue/findall from origin 'http://localhost ...
- 前端学习:学习笔记(JS部分)
前端学习:学习笔记(JS部分) 前端学习:JS学习总结(图解) JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 新建步骤 <body ...