小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,

简介: 小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,

 题目描述:

 小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,他需要一个记牌器,记录其他三家打了哪一些牌,以便其制定策略。

 桥牌使用的是去掉大小王的52张扑克牌,牌共有4个花色,分别是草花、方片、红心、黑桃,每一种花色有13张牌,点数分别是A、2、3、4、5、6、7、8、9、10、J、Q、K。在本题中,我们用字母来表示花色,具体说S是黑桃,H是红心,D是方片,C是草花,同时我们用T表示10点。

 桥牌的打牌阶段比较简单,总共4个玩家,每一个玩家手上有13张牌,每一次从某一家开始(具体从哪一家开始的规定也比较繁琐,本题不展开)顺时针出牌;总共13轮,每一轮每一个玩家只能出一张。小明要做的就是在每一轮结束之后记录已经出过哪一些牌,并且在k轮之后询问所有剩余的牌。本题中所有的牌面表示都是两个字母,第一个字母是点数,第二个字母是花色。

【输入形式】

 输入包括一组数据,第一行是一个整数k(1<=k<=12),表示小明想知道前k轮之后剩余哪一些牌,然后跟着k行,每行四个字符串,分别表示这一轮中四家出的牌,每一个字符串第一个字符表示点数,第二个字符表示花色,例如:9S表示黑桃9,KD表示方块K,TH表示红心10。

【输出形式】

输出经过k轮出牌之后还剩余哪一些牌,每一张牌用两个字符表示,第一个是点数,第二个是花色。输出时首先按照黑桃、红心、方片、草花的顺序输出,花色一样的按照点数大小从小到大输出,其中输出的时候我们认为A、2、3、4、5、6、7、8、9、10、J、Q、K是依次递增的,具体细节见输出样例。

【样例输入】

7

3D 5D 9D AD

4S 5S TS KS

8S 9S 2S AS

6S 8D KD 2D

7C 3C 6C KC

AC TC 2C 5H

8H 3H TH AH

【样例输出】

3S 7S JS QS 2H 4H 6H 7H 9H JH QH KH 4D 6D 7D TD JD QD 4C 5C 8C 9C JC QC

【样例说明】

7轮之后,剩余的牌按顺序输出的结果就是样例输出,可以验证已经出的牌和还剩余的牌加起来是去掉大小王的一副扑克牌。

【评分标准】

对于20%的数据: n=1,且保证四家所出的牌花色相同

对于50%的数据:n=1

对于100%的数据:1<=n<=12,并且保证列出来的牌不重复。

因为本题只是验证记牌器的功能正确,所以数据中出牌记录不保证符合桥牌的出牌规则,如果不理解这句话请忽略,不影响做出正确结果。

时间限制:1s

空间限制:64MB

代码如下:

#include <iostream>
#include <cstring>
using namespace std;
int main(){
  int a[5][14];
  for(int i=1;i<=4;i++){
    for(int j=1;j<=13;j++){
      a[i][j]=0;
    }
  }
  int n;cin>>n;//第n轮
  /*string s;cin>>s;
  int b=s[0]-'0';
  cout<<b<<endl;
  */
  //*
  for(int i=0;i<n;i++){
    for(int j=0;j<4;j++){
      string s;cin>>s;
      int ColorFlag=0;
      char x=s[0];// 牌数  
      char y=s[1];//花色
      //cout<<x<<" "<<y<<endl;
      if(y=='S') ColorFlag=1;
      else if(y=='H') ColorFlag=2;
      else if(y=='D') ColorFlag=3;
      else if(y=='C') ColorFlag=4;
      //cout<<ColorFlag<<endl;
      if(x>='2' && x<='9') {
        int num=x-'0';
        a[ColorFlag][num]=1;
        //cout<<ColorFlag<<" "<<num<<" "<<a[ColorFlag][num]<<" ";
      }
      else if (x=='A')
        a[ColorFlag][1]=1;
      else if (x=='T')
        a[ColorFlag][10]=1;
      else if (x=='J')
        a[ColorFlag][11]=1;
      else if (x=='Q')
        a[ColorFlag][12]=1;       
      else if (x=='K')
        a[ColorFlag][13]=1;
    } 
}
  for(int i=1;i<=4;i++){
    for(int j=1;j<=13;j++){
      if(a[i][j]==0){
      if(j==1) cout<<"A";
      else if(j==10) cout<<"T";
      else if(j==11) cout<<"J";
      else if(j==12) cout<<"Q";
      else if(j==13) cout<<"K";
      else cout<<j;
      if(i==1)cout<<"S"<<" ";
      else if(i==2)cout<<"H"<<" ";
      else if(i==3)cout<<"D"<<" ";
      else if(i==4)cout<<"C"<<" ";
      }
    }
  }
  return 0;
}

image.gif


目录
相关文章
|
4月前
|
测试技术
ACL 2024:大模型性能掺水严重?北大交出答卷:交互评估+动态出题,死记硬背也没用
【7月更文挑战第8天】北大研究团队推出KIEval框架,针对大语言模型(LLMs)的性能评估进行创新。KIEval采用互动评估和动态出题,通过多轮基于知识的对话测试模型理解和应用能力,旨在减少数据污染影响,挑战死记硬背的评估。然而,该方法可能增加计算需求,且评估结果可能受主观因素影响,不适用于所有类型LLMs。[论文链接:](https://arxiv.org/abs/2402.15043)**
90 24
|
3月前
|
算法 C++
惊爆!KPM算法背后的秘密武器:一行代码揭秘字符串最小周期的终极奥义,让你秒变编程界周期大师!
【8月更文挑战第4天】字符串最小周期问题旨在找出字符串中最短重复子串的长度。KPM(实为KMP,Knuth-Morris-Pratt)算法,虽主要用于字符串匹配,但其生成的前缀函数(next数组)也可用于求解最小周期。核心思想是构建LPS数组,记录模式串中每个位置的最长相等前后缀长度。对于长度为n的字符串S,其最小周期T可通过公式ans = n - LPS[n-1]求得。通过分析周期字符串的特性,可证明该方法的有效性。提供的C++示例代码展示了如何计算给定字符串的最小周期,体现了KPM算法在解决此类问题上的高效性。
82 0
|
6月前
|
JSON 自然语言处理 安全
看爬b站《工作细胞》一万条评论看伙伴们在讨论什么_工作细胞评论
看爬b站《工作细胞》一万条评论看伙伴们在讨论什么_工作细胞评论
|
6月前
|
数据可视化 Go
快刀斩乱麻,二区7分今年9月发表,孟德尔随机化如何做药靶筛选?
该文章是2023年9月发表在《Journal of Translational Medicine》的孟德尔随机化研究,探索风湿性关节炎(RA)的潜在药物靶点。研究通过遗传学方法鉴定,发现7个可能的药物靶点,这些基因与免疫功能相关,有望为RA药物开发提供新方向,节省成本,并增加临床试验成功的可能性。分析过程包括MR分析、共定位、功能富集和药物预测等步骤。
125 0
|
Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏19敌人可以被打死
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏19敌人可以被打死
141 0
|
Java
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
162 0
|
存储
L2-028 秀恩爱分得快 (25 分)(模拟)
L2-028 秀恩爱分得快 (25 分)(模拟)
197 0
L2-029 特立独行的幸福 (25 分)(数组模拟)
L2-029 特立独行的幸福 (25 分)(数组模拟)
124 0
算法每日一题——第七天——消除游戏
算法每日一题——第七天——消除游戏
算法每日一题——第七天——消除游戏
7-24 悄悄关注 (10 分)
7-24 悄悄关注 (10 分)
128 0