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 也是小年,在这祝福大家新年快乐!今 ...
随机推荐
- html5文件夹上传源码
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...
- P2891 [USACO07OPEN]吃饭Dining
漂亮小姐姐点击就送:https://www.luogu.org/problemnew/show/P2891 题目描述 Cows are such finicky eaters. Each cow ha ...
- Mac 下 安装 Nginx
---恢复内容开始--- Mac 下 安装nginx 首先确定自己有安装homebrew 安装 nginx brew install nginx 启动nginx 1.15版本下 安装是 直接在ngin ...
- 【原创】go语言学习(十六)接口
目录 接口介绍与定义 空接口和类型断言 指针接收和值接收区别 接口嵌套 接口介绍与定义 1. 接口定义了一个对象的行为规范 A. 只定义规范,不实现B. 具体的对象需要实现规范的细节 2.Go中接口定 ...
- s-w-i-p-e-r做一个-老-唬-机-抽-蒋
<template> <div class="selfLotteryBox"> <div class="row"> < ...
- As I Began to Love Myself
As I Began to Love Myself: Charlie Chaplin on his 70th birthday As I began to love myself I found th ...
- java 根据年月获取当前年月的最后一天,获取当前年月有多少天
new Date( "2019-08-" + 1) 获取2019年8月的最后一天 结果为--2019-08-31 new Date(2019, 8, 0).getDate( ...
- 如何在一个function里面设置一个全局的变量?
答:解决方法是在function的开始插入一个global声明: def f() global x
- GB∕T 35658平台过检 已通过最新的部标JT/T 808-2019, JT/T 809-2019标准检测
2019年交通部GPS平台检测标准发生了重大变化, 原来的796平台功能标准, 变更为GB/T35658标准, 这个标准其实2017年就公布了, 实际上还是796标准, 但是检测项目,以前是可选的, ...
- ansible 交互提示、tags和block
1.交互提示:使用关键字:vars_prompt 例:使用ansible的交互式功能创建用户和给定一个密码. --- - hosts: test50 remote_user: root vars_pr ...