死磕了一题模拟 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内部类的方方面面. 友情提 ...
随机推荐
- apache多网站配置
前言 虽说apache安装好后给了我们一个默认的一个网站.并且我们还能够将这个默认的网站改动成我们自己的网站.可是这似乎还不能全然满足我们的须要,由于当我们要在本机上开发(phpWeb)或者測试另外 ...
- weexapp 开发流程(一)开发环境配置
1.创建项目 weexpack create weexapp 2.安装必要插件 npm i jwt-simple vue-resource vue-router vuex vuex-router-sy ...
- C#语言 循环语句
//Console.Write("请输入关卡数:"); //int a = int.Parse(Console.ReadLine()); //int s = 0; //if (a ...
- OpenStack源码系列---起始篇
近一年来我负责公司云点的自动化部署工作,包括公司自有云平台方案.XenServer.vSphere.Ovirt和OpenStack的自动化安装部署,目前已经到了OpenStack这一部分.自动化部署首 ...
- 继承LinearLayout实现根据屏幕宽度及内部子View个数自动排布GridView
public class VerticalSearchGridView extends LinearLayout implements View.OnClickListener { private i ...
- region split流程分析
region split流程分析 splitregion的发起主要通过client端调用regionserver.splitRegion或memstore.flsuh时检查并发起. Client通过r ...
- sanic官方文档解析之蓝图
1,蓝图(Blueprints) 蓝图可用于子路由的应用,代替增加路由的存在,蓝图的定义和增加路由的方法相似,灵活的在应用中注册,并且可插拔的方式. 尤其是在大型应用中使用蓝图的时候在你逻辑打断的地方 ...
- android 图片内存问题
在android开发过程中,经常遇到oom的问题,原因有很多种,其中最难处理的是图片造成的oom,于是在网络上对比了几个图片加载的库,最终选择了Facebook的fresco库(github地址:ht ...
- 百度自然语言处理api用法
def words url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?access_token=1111111" param ...
- javascript 阻止事件冒泡 cancelBubble
javascript简单的阻止事件冒泡,可以使用事件的cancelBubble方法为true: html部分 <button id="btn1">点击显示div< ...