机房练习赛hao 【Tsinghua OJ】祖玛(Zuma) (字符串)
来源:互联网 发布:怎么联系淘宝达人合作 编辑:程序博客网 时间:2024/06/05 06:48
机房练习赛hao
【问题描述】
祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色。此后,你可以发射珠子到轨道上并加入原有序列中。一旦有三个或更多同色的珠子变成相邻,它们就会立即消失。这类消除现象可能会连锁式发生,其间你将暂时不能发射珠子。
开发商最近准备为玩家写一个游戏过程的回放工具。他们已经在游戏内完成了过程记录的功能,而回放功能的实现则委托你来完成。
游戏过程的记录中,首先是轨道上初始的珠子序列,然后是玩家接下来所做的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。
【输入格式】
第一行是一个由大写字母’A’~’Z’组成的字符串,表示轨道上初始的珠子序列,不同的字母表示不同的颜色。
第二行是一个数字 ,表示整个回放过程共有 次操作。
接下来的 行依次对应于各次操作。每次操作由一个数字 和一个大写字母 描述,以空格分隔。其中, 为新珠子的颜色。若插入前共有 颗珠子,则 表示新珠子嵌入之后(尚未发生消除之前)在轨道上的位序。
【输出格式】
输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上的珠子序列。
如果轨道上已没有珠子,则以“-”表示。
【样例输入】
ACCBA
5
1 B
0 A
2 B
4 C
0 A
【样例输出】
ABCCBA
AABCCBA
AABBCCBA
-
A
【数据规模与约定】
1 <= n <= 10^3, 1 <= m <= 2*10^3
思路:
一道模拟题,大佬们都用双向链表或vector模拟。
然而我第一次链表写挂了,后来发现直接字符串模拟就好。
strcpy的应用。
但是要注意几点,一个就是开始可能是有连续三个及以上的(可能是题目不太严谨),没有打到他们的时候是不会消掉的。还有就是最开始可能是一个空串,消的时候不只是消三个(有多少连续的就要消掉多少)。
字符串的题目要注意读入,建议gets。
#include <cstdio> #include <cstring>#include <iostream>using namespace std;char ch[20010], temp[20010]; int size, pos;int ckeck(int a){ int ll = a, rr = a; char cc; cc = ch[a]; while(ch[ll] == cc && ll) ll--; if(ll || ch[ll] != cc) ll++; while(ch[rr] == cc && rr < size) rr++; if(rr - ll > 2){ strcpy(temp, ch + rr); strcpy(ch + ll, temp);//消除ll~rr size = size + ll - rr; pos = ll; return 1; } else return 0;}int main(){ freopen("hao.in", "r", stdin); freopen("hao.out", "w", stdout); char cc; gets(ch); while(ch[size] >= 'A' && ch[size] <= 'Z') size++; int T; scanf("%d", &T); while( T-- ){ scanf("%d %c", &pos, &cc); strcpy(temp, ch + pos); strcpy(ch + pos + 1, temp);//腾出pos ch[pos] = cc; size++; while(ckeck(pos) && size); if(size) puts(ch); else puts("-"); } return 0; }
- 机房练习赛hao 【Tsinghua OJ】祖玛(Zuma) (字符串)
- Tsinghua OJ:祖玛(Zuma)
- Tsinghua OJ 数据结构编程作业:祖玛(Zuma)
- Tsinghua MOOC 祖玛(Zuma)
- Tsinghua OJ:灯塔(LightHouse)
- Tsinghua OJ:隧道(Tunel)
- Tsinghua OJ:灯塔(手排+归并排序)
- Tsinghua OJ:范围查询(Range)
- Tsinghua OJ:列车调度(Train)
- Tsinghua OJ 多米诺骨牌(domino)
- oj练习--字符串替换
- 祖玛(Zuma)
- 机房练习赛kun (贪心 模拟)
- 机房练习赛nan(分块压缩)
- Tsinghua OJ:真二叉树重构(Proper Rebuild)
- [机房练习赛4.3]drive
- [机房练习赛4.3]graph
- [机房练习赛4.3]airplane
- windows下如何github ssh 公钥
- iOS端一次视频全屏需求的实现
- Spark源码之persist方法,cache方法以及StorageLevel
- Python协程(coroutine)
- 报错解决Context initialization failed org.springframework.beans.factory.BeanCreationException
- 机房练习赛hao 【Tsinghua OJ】祖玛(Zuma) (字符串)
- eclipse 项目jdk版本不一致导致的错误 Description Resource Path Location Type Target runtime com.genui
- error: Apostrophe not preceded by \ (in XXX.)
- Java 与 Kotlin 的语法对照
- bzoj2115 [ WC2011 ] -- 线性基
- H.264 码流格式: Annex-B, AVCC与extradata详解
- maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖
- set集合
- Scrapy爬取1908电影网电影数据