String Successor zoj 3490
链接
[https://vjudge.net/contest/294259#problem/D]
题意
就是给你一个字符串,要进行n次操作
让你输出每次的字符串
操作规则:
1.如果有数字或者字母就忽略其他的字符
否则最后面的字符就加一
2.如果存在进位,就往离当前最近的数字或者字母进位
z-a, Z-A, 9-0
如果不存在数字或者字母就在当前位置前面增加进位
分析
就是上面的规则模拟。我真的怕这种模拟。
有点麻烦。关键就是进位的情况判断就好了
然后他有可能一次操作连续进位几次,就递归一直到不能进位为止
我分析的复杂度没有问题,提交一直TLE,第二天弄个好久才发现换行因为是cout<<endl
如果我改成cout<<"\n"就过了。气屎我了,下次一定要慎用cin,cout
记住了
代码
#include<bits/stdc++.h>
using namespace std;
void go(string &s,int cur){
if(isalnum(s[cur])){
if(s[cur]=='Z'||s[cur]=='z'||s[cur]=='9'){
int j=cur-1;
while(j>=0&&!isalnum(s[j]))
j--;
if(j<0){
if(s[cur]=='z') s[cur]='a',s.insert(cur,"a");
else if(s[cur]=='Z') s[cur]='A',s.insert(cur,"A");
else if(s[cur]=='9') s[cur]='0',s.insert(cur,"1");
}
else {
if(s[cur]=='z') s[cur]='a';
else if(s[cur]=='Z') s[cur]='A';
else if(s[cur]=='9') s[cur]='0';
go(s,j);
}
}
else {
s[cur]++; return;
}
}
else{
s[cur]++; return;
}
}
int main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int t,n; string s;
cin>>t;
while(t--){
cin>>s>>n;
for(int i=0;i<n;i++){
int cur=-1;
for(int k=s.length()-1;k>=0;k--)
if(isalnum(s[k])){
cur=k; break;
}
if(cur==-1) cur=s.length()-1;
go(s,cur);
cout<<s<<"\n";
}
cout<<"\n";
}
return 0;
}
String Successor zoj 3490的更多相关文章
- ZOJ——String Successor(字符串模拟题目)
ZOJ Problem Set - 3490 String Successor Time Limit: 2 Seconds Memory Limit: 65536 KB The succes ...
- ZOJ 3490 String Successor(模拟)
Time Limit: 2 Seconds Memory Limit: 65536 KB The successor to a string can be calculated by applying ...
- ZOJ 3490 String Successor
点我看题目 题意 : 给你一个字符串,让你按照给定规则进行处理. 如果字符串里有字母或者是数字就忽略非字符数字,如果没有,就让最右边的那个字符+1. 增量都是从最右边的字母或者数字开始的. 增加一个数 ...
- ZOJ 3490 String Successor 字符串处理
一道模拟题,来模拟进位 暴力的从右往左扫描,按规则求后继就好了.除了Sample已给出的,还有一些需要注意的地方: 9的后继是10,而不是00: (z)的后继是(aa),而不是a(a): 输入虽然最长 ...
- String Successor(模拟)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3490 题意:给出一个字符串,一个操作次数,每次操作从当前字符串最右边的字符 ...
- zoj 3490
蛋都疼了,高了半天,Output Limit Exceeded 原来是输入的问题,我靠!!以后还是用输入输出c++好,这尼玛!!郁闷!!!!! #include<stdio.h> #inc ...
- Python中文乱码
1,注意:请使用智慧型浏览器 "CHROME" 配合理解和运作本文中提到的程序. 2,提示:谷歌的CHROME浏览器是迄今为止最智慧的浏览器,没有之一,只有第一. 3,谷歌的CHR ...
- 【转载】ACM总结——dp专辑
感谢博主—— http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 动态规划一 ...
- 【DP专辑】ACM动态规划总结
转载请注明出处,谢谢. http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 ...
随机推荐
- SQL Server分页存储过程通用存储过程
CREATE proc [dbo].[p_paging]@tableName varchar(8000), --表名.视图名@indexCol varchar(50) = 'id', ...
- [Go] golang原子函数锁住共享资源
1.atomic包里的几个函数以及sync包里的mutex类型,提供了解决方案2.原子函数能够以很底层的加锁机制来同步访问整型变量和指针3.atomic.AddInt64(&counter, ...
- python3.6 pip 出现locations that require TLS/SSL异常解决方案
在给CentOS服务器安装完Python3.6后,使用pip命令出现问题,提示说无法找到ssl模块. 上网查询后发现在安装Python3.6时没有安装openssl-devel依赖库,解决方案如下: ...
- 弹窗滑动,造成body跟随滑动解决办法
今天测试的时候遇到一个移动端的bug,为什么说是移动端的呢,因为在谷歌浏览器的移动模式下,这个是不会出现的.先描述具体的情况.一个长页面(肯定是比手机长的页面,所以肯定会滑动),里面有一个按钮,点击按 ...
- 驰骋工作流引擎JFlow与activiti的对比 -总结
共同点: 1. 嵌入式的工作流引擎,降低集群复杂性. 2. 严格而灵活的流程版本控制 3. 支持多种数据库 4. 支持多种流程设计模式 5. 成熟度高的开源工作流,具有可靠的稳定性和性能. 区别: 1 ...
- dns server 域名解析总结
1.客户有两种使用公网域名解析的方法,一种是,直接配置A记录,将域名直接解析到ip地址.第二种是,配置NS记录,将对这个域名的解析分配给另外一个域名服务器,这个域名服务器就是客户自己搭建的内部域名服务 ...
- python 图片在线转字符画预览
文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中 ...
- 微信小程序基本目录结构学习
今天我们就以firstdemo为例,介绍一下小程序的基本目录结构.当我们打开一个微信小程序项目后,点击进入“编辑”菜单,我们可以看到有以下5个文件/文件夹):pages文件夹,utils文件夹,全局文 ...
- MongoDB在已有账号的实例下还原数据库报错的分析(error applying oplog)
一. 背景 今天在MongoDB 4.0.4版本下,在还原恢复数据库时报错. 主要错误为: Failed: restore error: error applying oplog: applyOps: ...
- QQ邮箱开启SMTP方法如何授权
步骤一: 在打开的邮箱中心,进入设置 步骤二 从邮箱设置中心,进入帐户 步骤三 在这里可以看到POP3/SMTP服务被关闭了,因此客户端会收不到邮件,我们来开启它,查看该服务为已开启时,就可以用客户端 ...