csu 1898: 复盘拉火车
1898: 复盘拉火车
Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 114 Solved: 36
Description
小GJ和小XS没事做用扑克牌玩起了小时候的拉火车游戏。规则如下,GJ和XS交替依次把手中的牌放到桌面上,由于GJ年长,所以他总是先放。桌面上会构成一个新的序列,当这个序列中新放入的点数与以前存在的某个点数重复的时候,这两张重复的牌和中间的牌就依次全部放回所放牌一方的序列尾部。 例如桌面上有牌A 10 2 3 5此时GJ放下一张2则桌面上剩下A 10而2 3 5 2这个序列放到GJ原本手中牌序列的尾部。
Input
有T(T<=20)组数据。 每组第一行给出GJ目前手中牌的数量N1(N1<=100)和这个手牌序列的点数各是多少 (点数可能为 A 2 3 4 5 6 7 8 9 10 J Q K) 第二行给出XS目前手中牌的数量N2(N2<=100)和这个手牌序列的点数各是多少 第三行给出一个数字K,问进行K(K<=2xN1 且 K<=2xN2)次放牌后,桌面上的序列和两个人的手牌序列是怎样的。
Output
每组数据给出3行输出,桌面上的扑克序列,小GJ的手牌序列和小XS的手牌序列。具体格式见样例。 每组数据后加空行间隔。
Sample Input
2
10 A 2 3 4 5 6 7 8 9 10
5 2 2 3 4 5
5
5 2 2 2 2 5
5 A 3 4 J K
10
Sample Output
Deck: A 2 3
GJ: 4 5 6 7 8 9 10 2 2
XS: 3 4 5 Deck: 3 J 5 K
GJ: 2 A 2 2 4 2
XS:
Hint
Source
中南大学第十一届大学生程序设计竞赛
Author
OTTFF
题解:完完全全的模拟题
#include<iostream>
#include<string>
#include<cstdio>
#include<stack>
#include<map>
#include<algorithm>
using namespace std;
char a[],b[],c[];
map<char,int>mp;
int main()
{ int n;
scanf("%d",&n);
int num1,num2,k;
int r1,r2,r3;
while(n--)
{
r1=r2=r3=;
char ch;
scanf("%d",&num1);
for(int i=;i<num1;++i)
{
getchar();
scanf("%c",&a[i]);
if(a[i]=='')scanf("%c",&ch);
mp[a[i]]=-;
}
scanf("%d",&num2);
for(int i=;i<num2;++i)
{
getchar();
scanf("%c",&b[i]);
if(b[i]=='')scanf("%c",&ch);
mp[b[i]]=-;
}
scanf("%d",&k); for(int i=;i<k;++i)
{
if(!(i%))
{
// printf("GJ放牌:");
if(mp[a[r1]]==-)
{
// printf("无牌可收\n");
mp[a[r1]]=r3;
c[r3++]=a[r1];
}
else{
// printf("%d有牌可收\n",mp[a[r1]]);
c[r3++]=a[r1];
int rk=r3;
r3=mp[a[r1]];
for(int j=mp[a[r1]];j<rk;++j)
{
a[num1++]=c[j];
mp[c[j]]=-;
} }
r1++;
}
else
{
// printf("XS放牌:");
if(mp[b[r2]]==-)
{
// printf("无牌可收\n");
mp[b[r2]]=r3;
c[r3++]=b[r2];
}
else{
// printf("%d有牌可收\n",mp[b[r2]]);
c[r3++]=b[r2];
int rr=r3;
r3=mp[b[r2]];
for(int j=mp[b[r2]];j<rr;++j)
{
b[num2++]=c[j];
mp[c[j]]=-;
}
}
r2++;
}
}
printf("Deck:");
for(int i=;i<r3;++i)
{
printf(" %c",c[i]);
if(c[i]=='')printf("");
}
printf("\nGJ:");
for(int i=r1;i<num1;++i)
{
printf(" %c",a[i]);
if(a[i]=='')printf("");
}
printf("\nXS:");
for(int i=r2;i<num2;++i)
{
printf(" %c",b[i]);
if(b[i]=='')printf("");
}printf("\n");
printf("\n");
}
return ;
}
csu 1898: 复盘拉火车的更多相关文章
- js数据结构之栈、队列(数据结构与拉火车游戏)
1.js实现队列的数据结构(先进先出) function Queue (array) { if(Object.prototype.toString.call(array)!="[object ...
- csu 1552(米勒拉宾素数测试+二分图匹配)
1552: Friends Time Limit: 3 Sec Memory Limit: 256 MBSubmit: 723 Solved: 198[Submit][Status][Web Bo ...
- csps2019记
Day0: 上午疯狂颓板子(树状数组,KMP)屁都没考,感觉海星. 上午坐大巴去了德州,中午和skyh凑钱吃饭(其实是我请他)rp++. 下午在火车上和侯神打扑克,拉火车之神Get. 到燕大试机,敲了 ...
- 借助 dp 公式去优化
题目描述 一天,神犇和 LCR 在玩扑克牌.他们玩的是一种叫做“接竹竿”的游戏. 游戏规则是:一共有 nnn 张牌,每张牌上有一个花色 ccc 和一个点数 vvv,花色不超过 kkk 种.将这些牌依次 ...
- 2017 省赛选拨 火车入站 CSU 1757 模拟
1757: 火车入站 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 512 ...
- 外卖的撕‘哔’大战 CSU 1559
CSU 1559 Time Limit:1000MS Memory Limit:131072 ...
- Swing开发界面时的一个bug复盘
问题:QA突然发个截图说一个Dialog上展示的东西变形了 分析:不理解,什么也没做,怎么会变形,刚刚我用的时候还正常.看看代码,的确什么也没更改:在本地测一下,也没有问题:baidu,bing,st ...
- 关于ACM,关于CSU
原文地址:http://tieba.baidu.com/p/2432943599 前言: 即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾.开个贴讲讲ACM与中南的故事, ...
- JS列表的下拉菜单组件(仿美化控件select)
JS列表的下拉菜单组件(仿美化控件select) 2014-01-23 23:51 by 龙恩0707, 1101 阅读, 6 评论, 收藏, 编辑 今天是农历23 也是小年,在这祝福大家新年快乐!今 ...
随机推荐
- hbase的region
一.Region 概念 Region是表获取和分布的基本元素,由每个列族的一个Store组成.对象层级图如下: Table (HBase table) Region (Regions for the ...
- nginx + keepalived双活配置
一.安装nginx 我们这边默认安装的nginx的是1.12.2的版本,所以我们需要安装1.16.1版本的nginx的,才好,所以我们这边先更新yum源,步骤如下: 1.添加yum源: [root@s ...
- Readiness probe failed:connection refused
我的K8S集群在启动一个POD的时候说死起不来,然后就报下面的错误 Events: Type Reason Age From Message ---- ------ ---- ---- ------- ...
- ROS计算图级
上一节说到一个 package 可以包含多个可执行文件(节点),可执行文件需要被运行,就要了解ROS的通信架构,也就是计算图级,例: 小萝卜机器人拥有驱动系统,感知系统,控制系统等,要让它从指定位置到 ...
- 10月清北学堂培训 Day 6
今天是黄致焕老师的讲授~ T1 自信 AC 莫名 80 pts???我还是太菜了!! 对于每种颜色求出该颜色的四个边界,之后枚举边界构成的矩阵中每个元素,如果不等于该颜色就标记那种颜色不能最先使用. ...
- 【模板】分治FFT
蒟蒻写题解实在不易 前置 方法一:\(Cdq+NTT\) 方法二:多项式求逆 NTT总结:多项式求逆总结 方法一 \(Cdq+NTT\): \[f_i=\sum\limits_{j=1}^i f_{i ...
- vue中子组件传值给父组件
index.js 子组件 父组件
- 4)抽象方法不能为private,final或者static,为什么?
抽象方法的最实质的意 义在于被未来的子类覆盖实现掉.它自己是个空方法.private的实质意义在于本类其他方法调用它.你自己是个空方法,别人调用你有什么用?所以 abstract和private在一起 ...
- Eclipse简明使用教程(java集成开发环境)
说明:我使用的是绿色便携版的Eclipse,免安装,解压就能用.链接:https://download.csdn.net/download/loongstyle/10700321 1_Eclipse中 ...
- LC 450. Delete Node in a BST
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...