洛谷P1061 Jam的计数法

题目描述

Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,i,j}这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfij”之后的数字应该是“bdghi”。(如果我们用U、V依次表示Jam数字“bdfij”与“bdghi”,则U<V< span>,且不存在Jam数字P,使U<P<V< span>)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。

输入输出格式

输入格式:

 

输入有2行,第1行为3个正整数,用一个空格隔开:

s t w (其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足:1≤s<T≤26, 2≤w≤t-s )

第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。

所给的数据都是正确的,不必验证。

 

输出格式:

 

输出最多为5行,为紧接在输入的Jam数字后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。每行只输出一个Jam数字,是由w个小写字母组成的字符串,不要有多余的空格。

 

输入输出样例

输入样例#1:
  2 10 5bdfij
输出样例#1:
bdghi
bdghj
bdgij
bdhij
befgh

说明

NOIP 2006 普及组 第三题

【题目分析】

    前面两道题的分析我都用了魔仙堡的思维来解哈哈哈(为了避免遭到老师毒打,我决定这道题好好写)

    这道题就是在s到t个树中找出w个数,其实s没啥用,并且要按照字典序排列

    从后向前找未达到最大值t的s[len],后面的数比前面的数至少要大1

    如果不符合条件(比t大或者前面这一位比他后面的大且不是最后一位),撤销前面的操作,并退回到上一位

    最终得到的len值,从第len位开始往后每一位都比前一位+1改变s串的值输出直到i==5

 

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a,t,w,len;
char t1;
string s;
int main()
{scanf("%d%d%d",&a,&t,&w);t1=t+96;cin>>s;for(int i=1;i<=5;i++){len=w-1;for(int j=1;j!=0;j++){s[len]++;if(s[len]>t1||(len!=w-1 && s[len]>=s[len+1]))s[len]--,len--;else break;if(len<=0) return 0;}for(int k=len+1;k<w;k++)s[k]=s[len]+k-len;cout<<s<<endl;}return 0;
}

 

转载于:https://www.cnblogs.com/xiaoningmeng/p/5820917.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中final使用

final关键字可以用来修饰引用、方法和类。 1、用来修饰一个引用 如果引用为基本数据类型&#xff0c;则该引用为常量&#xff0c;该值无法修改&#xff1b; 如果引用为引用数据类型&#xff0c;比如对象、数组&#xff0c;则该对象、数组本身可以修改&#xff0c;但指向该对象或…

oracle未过账是什么意思,EBS R12 GL过帐问题(急)

凭证在过账时出现以下错误日志&#xff0c;麻烦帮忙分析下是什么原因。谢谢&#xff01;---------------------------------------------------------------------------总帐管理系统: Version : 12.0.0Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.GLP…

曲线的生成算法实现_PCGPlanet1-地形生成算法简介

比较常用的地形生成算法有三种&#xff1a;四叉树算法,GeoMipmap算法&#xff0c;移动立方体算法目前市面游戏采用的方案基本都是以这三种算法为基础实现的&#xff0c;下面依次进行介绍四叉树算法很经典的算法&#xff0c;在没有GPU的时代就已经出现了&#xff0c;原始算法是纯…

数据库安全:数据库加密技术介绍

数据库加密是计算机系统对信息进行保护的一种最可靠的方法。它利用密码技术对信息进行加密&#xff0c;实现信息屏蔽&#xff0c;从而起到保护信息安全的作用。对数据库中的数据进行加密&#xff0c;可以防止数据在存储和传输过程中失密。常用的数据加密技术按照作用不同分为数…

poj 1201 差分约束

转自&#xff1a;優YoU http://user.qzone.qq.com/289065406/blog/1307063918 大致题意&#xff1a; 给出数轴上的n个区间[ai&#xff0c;bi]&#xff0c;每个区间都是连续的int区间。 现在要在数轴上任意取一堆元素&#xff0c;构成一个元素集合V 要求每个区间[ai&#xff0c…

oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等1. 【启动停止服务】//启动停止监听 www.2cto.comlsnrctl start;lsnrctl stop;//启动停止服务sqlplus orcl as sysdba; //登录>shutdown immediate;>STARTUP;或者ps -ef|grep ora_dbw0_$O…

Java中包装类型和基本类型的使用场景(阿里开发规范)

基本数据类型和包装数据类型推荐使用场景 所有的 POJO 类属性必须使用包装数据类型RPC 方法的返回值和参数必须使用包装数据类型所有的局部变量推荐使用基本数据类型

数据库:整理四个实用的SQLServer脚本函数

今天给大家分享小编自己日常工作积累的四个SQLServer脚本函数 目录 1、字符串指定字符分割为list 2、数字去掉末尾的0 3、创建表、视图、函数、存储过程判断是否存在 4、金额转换为大写 1、字符串指定字符分割为list 功能&#xff1a;主要适用于数据库字段存储字段用逗号等分隔…

python排名分析_用Python分析了近几年胡润排行榜,我酸了……

10 月 20 日&#xff0c;胡润研究院发布《2020 胡润百富榜》&#xff0c;也就是富富富豪排行榜杭州的马云毫无悬念的再次摘下中国首富桂冠&#xff0c;深圳的马化腾位列第二榜单被我翻烂了&#xff0c;还是没有找到我的名字&#xff0c;难道是被遗漏了吗&#xff1f;&#xff1…

sublime代码片段

创建方法&#xff1a;Tools > New Snippet 这时你会看到如下示例代码&#xff1a; <snippet><content><![CDATA[Hello, ${1:this} is a ${2:snippet}.]]></content><!-- Optional: Set a tabTrigger to define how to trigger the snippet -->…

定义DO/DTO/VO等POJO类时,不要设定任何属性默认值

定义DO/DTO/VO等POJO类时&#xff0c;不要设定任何属性默认值

php事务 面向对象,关于PHP面向对象的事务脚本模式

下面为大家带来一篇PHP面向对象之事务脚本模式(详解)。内容挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。如下所示&#xff1a;/*事务脚本模式: 类似于thinkphp中的model层&#xff0c;或者说就是操作数据库的类。个人觉得实践中使用起来还是挺简单方便…

分布式数据库相关概念介绍

1、分布式数据库的概念分布式数据库系统&#xff08;Distributed Database System&#xff0c;DDBS&#xff09;是针对面向地理上分散&#xff0c;而管理上有需要不同程度集中管理的需求而提出的一种数据库管理信息系统。2、分布式数据库系统组成LDBMS(Local DBMS)&#xff1a;…

社会管理网格化 源码_为什么说网格化管理是基层社会治理的有效武器

在社会治安综合治理中网格化管理是当前各地加强基层社会治理的一种有效“武器”。为什么要说网格化管理是基层社会治理的有效“武器”&#xff1f;这就要为大家讲讲以下几点了&#xff0c;好让大家清楚的明白为什么。网格化管理适应当代社会的基本特性。网格化服务管理是当前城…

【Time系列一】datetime的妙用

今天在弄个自动关机小脚本的时候&#xff0c;遇到了时间转换的问题&#xff0c;也难怪&#xff0c;以前没学过&#xff0c; 不能怪我不会哦! 首先&#xff0c;先学会打印出当前时间的几种方式 参考开源社区: http://my.oschina.net/u/1032854/blog/198179#OSC_h1_3 菜鸟编程:…

循环体内,字符串的连接方式,使用StringBuilder的append方法进行扩展

循环体内&#xff0c;字符串的连接方式&#xff0c;使用StringBuilder的append方法进行扩展

JS树结构操作:查找、遍历、筛选、树结构和列表结构相互转换

经常有同学问树结构的相关操作&#xff0c;也写了很多次&#xff0c;在这里总结一下 JS 树形结构一些操作的实现思路&#xff0c;并给出了简洁易懂的代码实现。本文内容结构大概如下&#xff1a;JS树结构相关操作1遍历树结构1. 树结构介绍JS中树结构一般是类似于这样的结构&…

python框架django的使用_Django框架的基本使用,若依框架

Django框架的基本使用&#xff0c;若依框架Django框架的基本使用Django是一个功能强大的web框架框架模式1、MVC和MTV框架MVC&#xff1a;Web服务器开发领域里著名的MVC模式&#xff0c;所谓MVC就是把Web应用分为模型(M)&#xff0c;控制器(C)和视图(V)三层&#xff0c;结构说明…

初学js

今天开始接触js&#xff0c;知道了js的功能以及学习的意义&#xff0c; 今天从命名的规范和数值的规则就能看出js是1门非常严谨的课程&#xff0c;只有做好细节才能体现出js的强大之处&#xff0c; var是定义一个名字 var name1&#xff1b; 定义了还能赋值&#xff0c;可以是数…