死磕了一题模拟 A掉的时候我是爽的
ZOJ 3490
没有题解。
一句话,要么贴代码,要么自己打。
#include<cstdio>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<math.h>
#include<queue>
#include<stdlib.h>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
using namespace std;
#define INF 0x3f3f3f3f
#define N 10000000
char s[110];
int ans[3][110];
int p1;
int p2;
int n;
int JUDGE(int x)
{
if(x>='a'&&x<='z')
return 1;
if(x>='A'&&x<='Z')
return 2;
if(x>='0'&&x<='9')
return 3;
return 0;
}
int num;
int j_1,j_2,k;
void sk(char h)
{
int flag=0;
for(int i=j_1+1; i<num; i++)
{
if(JUDGE(ans[1-k][i]))
{
flag=1;
break;
}
}
if(flag==0)
{
if(h=='0')
ans[k][j_2++]='1';
else if(h=='a')
ans[k][j_2++]='a';
else
ans[k][j_2++]='A';
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s%d",s,&n);
int len;
len=strlen(s);
num=0;
k=0;
for(int i=len-1; i>=0; i--)
{
ans[0][num++]=s[i];
}
int t=-1;
for(int i=0; i<num; i++)
{
if(JUDGE(ans[0][i]))
{
t=i;
break;
}
}
int x;
int bb;
bb=1;
if(t==-1)
{
for(int i=1; i<=n; i++)
{
k=1-k;
j_1=j_2=0;
x=ans[1-k][j_1]+1;
ans[k][j_2++]=x;
j_1++;
while(j_1<num)
{
ans[k][j_2++]=ans[1-k][j_1];
j_1++;
}
num=j_2;
for(int j=j_2-1; j>=0; j--)
printf("%c",ans[k][j]);
printf("\n");
bb=i+1;
if(x=='0'||x=='a'||x=='A')
{
t=0;
break;
}
}
}
int flat;
for(int i=bb; i<=n; i++)
{
k=1-k;
j_1=j_2=0;
flat=0;
while(j_1<num)
{
x=ans[1-k][j_1];
if(j_1<t)
ans[k][j_2++]=x;
else if(j_1==t)
{
x+=1;
if(x==('z'+1))
{
ans[k][j_2++]='a';
flat=1;
sk('a');
}
else if(x==('Z'+1))
{
ans[k][j_2++]='A';
flat=1;
sk('A');
}
else if(x==('9'+1))
{
ans[k][j_2++]='0';
flat=1;
sk('0');
}
else
ans[k][j_2++]=x;
}
else
{
if(JUDGE(x))
{
if(flat)
{
x+=1;
if(x==('z'+1))
{
ans[k][j_2++]='a';
sk('a');
}
else if(x==('Z'+1))
{
ans[k][j_2++]='A';
sk('A');
}
else if(x==(1+'9'))
{
ans[k][j_2++]='0';
sk('0');
}
else
{
ans[k][j_2++]=x;
flat=0;
}
}
else
{
ans[k][j_2++]=x;
}
}
else
{
ans[k][j_2++]=x;
}
}
j_1++;
}
for(int j=j_2-1; j>=0; j--)
{
printf("%c",ans[k][j]);
}
printf("\n");
num=j_2;
}
printf("\n");
}
return 0;
}
/*
100 5
1 12
**9**9 10
:-( 1
cirno=8 2
X 3
*********/
/*
*/
死磕了一题模拟 A掉的时候我是爽的的更多相关文章
- 死磕以太坊源码分析之EVM固定长度数据类型表示
死磕以太坊源码分析之EVM固定长度数据类型表示 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习 ...
- 死磕以太坊源码分析之EVM动态数据类型
死磕以太坊源码分析之EVM动态数据类型 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. So ...
- 死磕以太坊源码分析之EVM如何调用ABI编码的外部方法
死磕以太坊源码分析之EVM如何调用ABI编码的外部方法 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家 ...
- 重重封锁,让你一条数据都拿不到《死磕MySQL系列 十三》
在开发中有遇到很简单的SQL却执行的非常慢,甚至只查询一行数据. 咔咔遇到的只有两种情况,一种是MySQL服务器CPU占用率很高,所有的SQL都执行的很慢直到超时,程序也直接502,另一种情况是行锁造 ...
- 【死磕Java并发】----- 死磕 Java 并发精品合集
[死磕 Java 并发]系列是 LZ 在 2017 年写的第一个死磕系列,一直没有做一个合集,这篇博客则是将整个系列做一个概览. 先来一个总览图: [高清图,请关注"Java技术驿站&quo ...
- 死磕 Fragment 的生命周期
死磕 Fragment 的生命周期 本文原创,转载请注明出处.欢迎关注我的 简书 ,关注我的专题 Android Class 我会长期坚持为大家收录简书上高质量的 Android 相关博文.本篇文章已 ...
- Java类加载器( 死磕8)
[正文]Java类加载器( CLassLoader ) 死磕 8: 使用ASM,和类加载器实现AOP 本小节目录 8.1. ASM字节码操作框架简介 8.2. ASM和访问者模式 8.3. 用于增 ...
- 死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁
问题 (1)重入锁是什么? (2)ReentrantLock如何实现重入锁? (3)ReentrantLock为什么默认是非公平模式? (4)ReentrantLock除了可重入还有哪些特性? 简介 ...
- 死磕Java内部类
Java内部类,相信大家都用过,但是多数同学可能对它了解的并不深入,只是靠记忆来完成日常工作,却不能融会贯通,遇到奇葩问题更是难以有思路去解决.这篇文章带大家一起死磕Java内部类的方方面面. 友情提 ...
随机推荐
- mysql中游标在存储过程中的具体使用方法
昨天写的一个东东,分享下给大家. drop PROCEDURE if exists sp_cleanUserData; CREATE PROCEDURE `sp_cleanUserData`() ...
- WheelView实现省市区三级联动(数据库实现版本号附带完整SQL及数据)
近期在实现收货地址功能,用到了省市区三级联动效果,网上找到一般都是xml或json.数据源陈旧改动麻烦.改动了一下使用数据库方式实现了一下 数据源解决.因为数据量比較大通过初始化批量运行SQL的方式不 ...
- 【转】DevOps原则
DevOps的出现有其必然性.在软件开发生命周期中,遇到了两次瓶颈. 第一次瓶颈是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,后来出现了敏捷方法论,强调适应需求.快速迭代. ...
- 【转载】分布式系统理论基础 - 一致性、2PC和3PC
引言 狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作.广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]: What is ...
- 【转载】5种网络IO模型
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出 ...
- 【前端】怎样成长为一名优秀的前端project师---
浅谈本人的经验.也算是与大家交流吧,本人眼下也是从事前端的工作,时间并不长,说的不好,请见谅. 首先,前端project师必须得掌握HTML.CSS和JavaScript. 仅仅懂当中一个或两个还不行 ...
- 微软开源 Try .NET - 创建交互式.NET文档
微软近日开源了一个新平台--Try .NET,该平台可以让开发者在线上编写并运行 .NET 代码.微软介绍,Try .NET 是一个可嵌入的代码运行器,不仅可以直接在线上对自己或者他人的代码进行编辑. ...
- 关闭SVN服务
关闭TSVNCache.exe进程 在Windows下使用SVN,通常都会安装TortoiseSVN,安装后会有一个TSVNCache.exe的进程驻留内存,这个进程会定时地去扫描Subversion ...
- because joins aren’t as important.
“MongoDB wasn’t designed in a lab. We built MongoDB from our own experiences building large-scale, h ...
- 使用URL dispatcher的范例
在上面的一篇文章中,我们介绍了怎样使用URL disptacher.在这篇文章中,我们来通过一个范例更进一步来了解怎样实现它. 1)创建一个具有URL dispatcher的应用 我们首先打开我们的S ...