当前位置: 首页 > news >正文

UVa 555 Bridge Hands

题目描述

题目要求模拟发牌过程,并对每个玩家的手牌进行排序,按花色(梅花♣\clubsuit、方块♢\diamondsuit、黑桃♠\spadesuit、红桃♡\heartsuit)和点数(2<3<⋯<T<J<Q<K<A2 < 3 < \dots < \text{T} < \text{J} < \text{Q} < \text{K} < \text{A}2<3<<T<J<Q<K<A)升序排列。输出四位玩家的手牌,顺序为S\texttt{S}SW\texttt{W}WN\texttt{N}NE\texttt{E}E

输入格式

输入包含多个测试用例。每个测试用例第一行是一个字符,表示发牌人(N\texttt{N}NE\texttt{E}ES\texttt{S}SW\texttt{W}W)。接下来两行,每行262626个字符,表示一副牌(每张牌由花色和点数两个字符组成,共525252个字符)。输入以#结束。

输出格式

对于每个测试用例,输出四行,格式为玩家: 牌1 牌2 ...,玩家顺序为S\texttt{S}SW\texttt{W}WN\texttt{N}NE\texttt{E}E

样例

输入

N CQDTC4D8S7HTDAH7D2S3D6C6S6D9S4SAD7H2CKH5D3CT8SC9H3C3 DQS9SQDJH8HAS2SKD4H4S5C7SJC8DKC5C2CAHQCJSTH6HKH9D5HJ #

输出

S:C3C5C7CTCJ D9DTDJ S3SKH2H9HT W:C2C4CK D4D5D6DQDA S4S8ST SJH8 N:C6C8C9CA D8S9SAH4H5H6H7HJHA E:CQ D2 D3 D7 DK S2 S5 S6 S7 SQ H3 HQ HK

题目分析

本题的核心是模拟发牌和排序。

发牌规则

  • 发牌人先发给自己左手边的玩家,按顺时针顺序依次发牌。
  • 525252张牌,每位玩家得到131313张。

排序规则

  • 花色顺序:C<D<S<H\texttt{C} < \texttt{D} < \texttt{S} < \texttt{H}C<D<S<H
  • 点数顺序:2<3<4<5<6<7<8<9<T<J<Q<K<A2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < \text{T} < \text{J} < \text{Q} < \text{K} < \text{A}2<3<4<5<6<7<8<9<T<J<Q<K<A

输出顺序

输出四行,顺序为S\texttt{S}SW\texttt{W}WN\texttt{N}NE\texttt{E}E,即南、西、北、东。

算法步骤

  1. 确定发牌起始玩家(发牌人的左手边)。
  2. 读取525252张牌,依次分配给四位玩家。
  3. 对每位玩家的手牌按花色和点数排序。
  4. 按指定顺序输出。

复杂度分析

O(52log⁡13)O(52 \log 13)O(52log13),可接受。

代码实现

// Bridge Hands// UVa ID: 555// Verdict: Accepted// Submission Date: 2016-08-12// UVa Run Time: 0.040s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;map<char,int>suits={{'C',0},{'D',1},{'S',2},{'H',3}};map<char,int>ranks={{'2',0},{'3',1},{'4',2},{'5',3},{'6',4},{'7',5},{'8',6},{'9',7},{'T',8},{'J',9},{'Q',10},{'K',11},{'A',12}};map<int,char>dealers={{0,'S'},{1,'W'},{2,'N'},{3,'E'}};map<char,int>offset={{'S',3},{'W',2},{'N',1},{'E',0}};string suit_text="CDSH",rank_text="23456789TJQKA";structcard{intsuit,rank;booloperator<(constcard&another)const{if(suit!=another.suit)returnsuit<another.suit;elsereturnrank<another.rank;}};intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);chardealer,suit,rank;while(cin>>dealer,dealer!='#'){vector<vector<card>>cards(4,vector<card>(13));for(inti=0;i<13;i++)for(intj=0;j<4;j++){cin>>suit>>rank;cards[j][i].suit=suits[suit];cards[j][i].rank=ranks[rank];}for(inti=0;i<4;i++)sort(cards[i].begin(),cards[i].end());for(autod:dealers){cout<<d.second<<':';for(autoc:cards[(offset[dealer]+d.first)%4])cout<<' '<<suit_text[c.suit]<<rank_text[c.rank];cout<<'\n';}}return0;}
http://www.jsqmd.com/news/1056613/

相关文章:

  • 义乌青阳路西福变速箱专修,19 年连锁老店,全车型变速箱一站式维修 联系电话:13735634594 地址:义乌青口工业区青阳路179号 - 速递信息
  • 2026南京GEO优化效果怎么保障?本地AI流量服务商推荐与选型标准指南 - 936品牌测评网
  • 嵌入式Linux中的按键中断控制
  • 如何用biliTickerBuy抢票神器轻松搞定B站会员购抢票:面向新手的终极指南
  • PUBG雷达系统终极指南:5分钟免费实现战场全透视
  • 2026年6月有名的钛回收企业推荐,钛回收/镍铝料回收/钛合金回收/冲空料镍片回收/回收一切含镍料,钛回收商家哪家好 - 品牌推荐师
  • 2026郴州黄金回收避坑指南 正规机构排名及合规交易干货 - 小仙贝贝
  • 郴州黄金回收哪家靠谱?2026本地正规门店排名+2026年6月21日黄金、铂金、钯金实时报价 - 小仙贝贝
  • 2026年6月屋面虹吸排水厂家哪家好,虹吸雨水/虹吸排水管材/虹吸雨水斗/屋面虹吸排水,屋面虹吸排水生产厂家推荐 - 品牌推荐师
  • -微信评选活动怎么做?云帆投票vs腾讯投票,2026免费投票工具实测盘点 - 投票小程序
  • DSP56300与EPROM接口设计:时序匹配、地址映射与数据完整性验证实战
  • 郴州黄金回收哪家靠谱?2026最新避坑指南+正规门店排名(附速查卡) - 小仙贝贝
  • Claude 3.5 Sonnet中文工作流实战:PDF解析、合同校验与Notion自动化
  • 炉石传说脚本Hearthstone-Script:5步实现智能自动对战,解放双手的终极指南
  • RGPO:可微拒绝门控如何提升强化学习策略优化的样本效率与稳定性
  • 5分钟完成Word到LaTeX转换:docx2tex终极指南
  • Zotero-SciHub插件技术深度解析:自动化文献获取的架构设计与实现
  • 3分钟掌握Windows界面自由:ExplorerPatcher完整指南
  • ARMv8硬件追踪解码实战:从ATB流到系统级性能剖析
  • 叉积证明(应用:旋转卡壳)
  • 防水行业拐点已至:告别低价内卷,全链路服务才是终局(郑州防水哪家好?怎么选?) - 速递信息
  • 视频如何去水印?2026最新视频去水印方法盘点,附实测视频去水印工具推荐合集 - 爱上科技热点
  • 武汉考研2026年暑期培训市场深度观察:5家主流培训机构多维度参考 - 新闻快传
  • Ubuntu 20.04服务器初始配置:sudo加固、UFW零信任与服务精简
  • GLM-5开源:工程师级AI编码基座实战指南
  • 2026年6月新疆省油省钱的24小时哨兵模式挖掘机体验厂家推荐,挖掘机,24小时哨兵模式挖掘机批发厂家推荐 - 品牌推荐师
  • 双A100部署Qwen 3.6-27B:128K长上下文推理实战优化
  • MC1322x无线芯片超低功耗设计实战:从微安级休眠到电池续航优化
  • 2026 南京代理记账 + 注册公司机构排名 - 速递信息
  • 2026南昌装修公司榜单出炉,本土老牌装修公司放心冲不踩坑! - 速递信息