Zuma
来源:互联网 发布:淘宝网店头像图片大全 编辑:程序博客网 时间:2024/05/06 04:36
题目
游戏过程的记录中,首先是轨道上初始的珠子序列,然后是玩家接下来所做的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。
输入:
第一行是一个由大写字母’A’~’Z’组成的字符串,表示轨道上初始的珠子序列,不同的字母表示不同的颜色。
第二行是一个数字n,表示整个回放过程共有n次操作。
接下来的n行依次对应于各次操作。每次操作由一个数字k和一个大写字母Σ描述,以空格分隔。其中,Σ为新珠子的颜色。若插入前共有m颗珠子,则k ∈ [0, m]表示新珠子嵌入之后(尚未发生消除之前)在轨道上的位序。
输出:
输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上的珠子序列。
如果轨道上已没有珠子,则以“-”表示。
0 ≤ n ≤ 10^4
0 ≤ 初始珠子数量 ≤ 10^4
时间:2 sec
内存:256 MB
思路
每次输入后,先给最新输入的一个球腾出位置来。
再考察是否可以进行消除球球的动作。
分情况进行输出。
首先要选择使用的数据结构。
如果使用向量,则用标准库函数strcpy进行“腾位置”的操作。
但是时间复杂度可能会很高。
可以选择列表。
对于消除球球要写一个函数zuma(pos)。
程序
#include <cstdio> #include <cstring> const int SZ = 1<<20; struct fastio{ char inbuf[SZ]; char outbuf[SZ]; fastio(){ setvbuf(stdin,inbuf,_IOFBF,SZ); setvbuf(stdout,outbuf,_IOFBF,SZ); } }io; char ch[40000]; char temp[40000]; int size=0,pos; int zuma(int a) { int lo = a,hi = a; char elem; elem = ch[a]; while(ch[lo] == elem && lo) lo--; if(lo || ch[lo] != elem) lo++; while(ch[hi] == elem && hi < size) hi++; if(hi - lo > 2) { strcpy(temp,ch + hi); strcpy(ch + lo, temp); size = size - hi + lo; pos = lo; return 1; } else return 0; } int main() { int i = 0; int n; char e; gets(ch); while(ch[size] >= 'A' && ch[size] <= 'Z')size++; scanf("%d", &n); while(n--) { scanf("%d %c",&pos,&e); strcpy(temp, ch + pos); strcpy(ch + pos + 1, temp); ch[pos] = e; size++; while(zuma(pos) && size); if(size) puts(ch); else puts("-"); } return 0; }
0 0
- Zuma
- 祖玛(Zuma)
- Zuma Game
- Zuma HDU
- bnu1299 ZUMA C语言版
- bzoj1032: [JSOI2007]祖码Zuma
- Tsinghua MOOC 祖玛(Zuma)
- 数据结构1-2Zuma
- Tsinghua OJ:祖玛(Zuma)
- Codeforces 607 D Zuma
- codeforces 607B. Zuma
- CodeForces-607B Zuma
- JSOI2007 祖码Zuma
- Codeforces_607B:Zuma(区间DP)
- bzoj1032: [JSOI2007]祖码Zuma
- 【LeetCode】488. Zuma Game
- [LeetCode] Zuma Game
- POJ 2915 Zuma 笔记
- 黑马程序员——多态
- 学习Android推送功能笔记(3)---极光推送
- Android onMesure 用法简介
- ConnectionTimeOut和SocketTimeOut的区别
- 关于OPenCv的安装与配置问题说明
- Zuma
- Oracle大表清理truncate .. reuse storage
- 生成单个/多个补丁,打补丁用法
- sql 查询之排除某种特定的数据
- 绑定和解除绑定远程服务并调用远程服务的方法
- Oracle 10g 客户端连接远程数据库配置图解
- UltimusPDC应邀参展信博会,借势“互联网+”助推BPM
- 学习Hibernate总结 修改mysql数据库默认编码或者登录密码
- Hadoop之旅 — 1.Hadoop简述(初学者)