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$,出 ...
随机推荐
- es6模块化规范
在 es6 之前是没有块这个概念的,es6zhong 引入:实际如下: 若 xx1 和 xx2 中有变量名相同,且引入在同一 html 下,需要为引入的 script 标签加上 type=“modul ...
- 【转】机器学习实战之K-Means算法
一,引言 先说个K-means算法很高大上的用处,来开始新的算法学习.我们都知道每一届的美国总统大选,那叫一个竞争激烈.可以说,谁拿到了各个州尽可能多的选票,谁选举获胜的几率就会非常大.有人会说,这跟 ...
- Linux配置DHCP服务器,DHCP中继配置
配置dhcp服务器 第一步:配置网卡 第二步: 安装dhcp (需要先构建yum仓库,构建yum仓库的方法在之前的博客里有) 编写dhcp.conf文件 进去以后会出现这个内容 需要执行下面的内容将内 ...
- 花一天时间踩了node npm的一个坑
在一个后端眼里nodejs这工具真的难用,最近为了用elementui,然后去硬着头皮学vue,学着学着,发现还要去用node,webpack.真想掐死前端那一群人啊.... 好了,进入正题.话说我装 ...
- linux查看每秒的网络流量
import os import time cmd = 'ifconfig | grep "RX bytes" | tail -1 | awk -F":" \' ...
- Java8 新特性 Stream() API
新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...
- WindowsServer --------- 在服务器中安装sqlserver 数据库
数据库文件可能比较大可以通过盘符映射来进行传递,就是时间比较慢 方法,上一片就是介绍如何进行传递 点击这个连接 安装sqlserver 2014 数据库 要是没有密钥可以试试这个 一般 .Ne ...
- CMake方式编译
[1]CMake基础 CMake是一种跨平台编译工具 CMake主要是编写CMakeLists.txt文件 通过CMake命令将CMakeLists.txt文件转化为make所需的Makefile文件 ...
- HMAC算法原理
HMAC算法是一种基于密钥的报文完整性的验证方法 ,其安全性是建立在Hash加密算法基础上的.它要求通信双方共享密钥.约定算法.对报文进行Hash运算,形成固定长度的认证码.通信双方通过认证码的校验来 ...
- 在Mac 上搭建Linux虚拟机--MacOS & VMware10 & CentOS 7
在大型项目开发中, 需要使用Linux下的C语言对工程进行开发, 在个人PC或者工作站上搭建Linux系统十分容易且方便. 本篇文章将介绍操作系统和虚拟机的搭建: 1 操作系统2 虚拟机概念3 Lin ...