新用户注册入口 老用户登录入口

[转载]P1061 [NOIP2006 普及组] Jam 的计数法——模拟,想复杂了

文章作者:转载 更新时间:2024-02-12 12:42:53 阅读数量:561
文章标签:Jam数字计数法小写英文字母位数字典序严格递增
本文摘要:这篇文章讨论了一种由科学怪人Jam创造的独特计数系统——Jam数字。该系统采用小写英文字母代替阿拉伯数字,并要求每个数字的位数相同,且字母在各位置上严格递增。在特定字母范围(如2至10对应的字母)和规定位数下,文章详细阐述了如何按照字典序排列Jam数字并找到紧随其后的下一个数字。通过C++代码实例,展示了如何根据规则更新Jam数字以满足递增顺序的要求。关键词包括:Jam数字、计数法、小写英文字母、位数、字典序、严格递增、阿拉伯数字、标新立异、科学怪人和字母范围。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/cool99781/article/details/116902217。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

https://www.luogu.com.cn/problem/P1061
or
http://www.kencoding.net/problem.php?cid=1026&pid=2
题目描述
Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。

在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用 b , c , d , e , f , g , h , i , j {b,c,d,e,f,g,h,i,j} b,c,d,e,f,g,h,i,j这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfijbdfij”之后的数字应该是“bdghibdghi”。(如果我们用U、V依次表示JamJam数字“bdfijbdfij”与“bdghibdghi”,则U<V,且不存在Jam数字P,使U<P<V)。

你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。

输入格式
共2行。

第1行为3个正整数,用一个空格隔开:s t w(其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足: 1 ≤ s < T ≤ 26 , 2 ≤ w ≤ t − s 1≤s<T≤26, 2≤w≤t-s 1s<T26,2wts

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

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

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

输入输出样例
输入

  2 10 5bdfij

输出

bdghi
bdghj
bdgij
bdhij
befgh

说明/提示
NOIP 2006 普及组 第三题

——————————————

今天考试,当然不是14年前的普及组考试,是今天的东城区挑战赛,第三道题就是这道题,只不过改成了“唐三的计数法”,我没做过这道题,刚看到这道题还以为要用搜索,写了一个小时,直接想复杂了。后来才明白直接模拟即可!

从最后一位开始,尝试加一个字符,然后新加的字符以后的所有字符都要紧跟(就这一点,我用深搜写不出来,归根结底还是理解不够),才能使新增的字符串紧跟上一个字符串。

#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;int main()
{int s, t, w;char str[30];cin >> s >> t >> w >> str;for (int i = 1; i <= 5; i++){for (int j = w - 1; j >= 0; j--){if (str[j] + 1 <= ('a' + (t - (w - j)))){// 确认当前有可用字母就可以大胆用了,j就是变动位str[j] += 1;// 当前位置后的位置都是对齐位for (int k = j + 1; k < w; k++)str[k] = str[j] + k - j;cout << str << endl;// 是每次找到一组合适的就跳出break;}}}return 0;
}/*
一个方法做的时间超过半小时,或者思路减退、代码渐渐复杂、心态渐渐崩溃时,要及时切换思路。
*/

本篇文章为转载内容。原文链接:https://blog.csdn.net/cool99781/article/details/116902217。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
Jam数字在本文中,Jam数字是一种特殊的计数系统,由科学怪人Jam所创,用小写英文字母替代传统的阿拉伯数字进行计数。每个Jam数字由相同数量且互不相同的字母组成,并要求从左到右字母严格递增。例如,在限定的字母范围和指定的位数下,Jam数字需按照字典序排列并满足特定的递增规则。
字典序在计算机科学与信息学领域,字典序是指字符串或符号序列按照某种排序规则进行排列的顺序,通常采用字母表顺序(对于字母而言)。在本文的语境中,字典序用于描述Jam数字之间的大小关系,即按字母顺序从小到大排列Jam数字。
C++编程C++编程是一种面向对象的高级程序设计语言,它扩展了C语言的功能,并提供了类、模板等特性以支持面向对象编程。在文章中,作者通过C++代码实现了一个算法来解决如何找到给定Jam数字之后的下一个符合规则的Jam数字问题,展示了如何利用循环结构和逻辑判断在实际编程中处理这种特殊计数系统的逻辑。
位数在数字系统中,位数指的是一个数的构成单元(如二进制中的比特、十进制中的数位)的数量。在本文讨论的Jam数字体系里,位数特指组成Jam数字的字母个数是固定的,并且所有合法的Jam数字都必须具有相同的位数,确保它们能够比较和排序。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在探讨了科学怪人Jam的独特计数系统——Jam数字后,我们不禁联想到现实世界中对于非传统计数方式的探索与应用。近日,研究人员在人工智能和编程领域发现了一种新型编码方法,它借鉴了生物遗传密码的排列规则,将特定字母序列用于数据存储和加密,极大地提高了信息密度和安全性。
这种新颖的编码技术挑战了传统的二进制体系,尝试用多字母或符号构成的序列来表示数值,类似于文中Jam数字的概念,但其应用场景更加广泛且深入。例如,在量子计算研究中,科学家们正在开发新的量子比特编码方案,利用多种量子态组合以实现更高效的量子信息处理和传输。
此外,结合实际生活场景,也有教育工作者提出类似Jam数字的创新教学法,通过改变计数符号激发学生对数学的兴趣,引导他们理解不同文化背景下的计数系统,如罗马数字、玛雅数字等,从而培养跨学科思维和全球视野。
总之,Jam数字所代表的创新计数理念,不仅启发我们在学术和技术层面探索新型编码逻辑,也让我们反思现有教育模式,鼓励更多的创新实践与跨界融合,为未来的科技发展和人才培养提供新的思路。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
tar --exclude=PATTERN -cvf archive.tar . - 创建tar归档时排除匹配模式的文件。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
样式问题与自定义样式:解决React中ListItemButton点击反馈异常 12-23 SeaTunnel对接SFTP:应对连接不稳定与认证失败问题的配置参数优化及密钥验证实践 12-13 侧边栏个人图文简历HTML模板 12-09 [转载]@CrossOrigin Enabling CORS 11-11 Redis分布式锁:SETNX与RedLock实现机制及并发请求处理中的超时时间优化 10-15 jBooklet-jQuery简单的翻书特效插件 10-04 绿色好看房地产官网HTML框架网站模板 08-22 docker怎么搭建团队(基于Docker的私有云搭建) 08-21 基于Bootstrap的超酷jQuery开关按钮插件 07-27 本次刷新还10个文章未展示,点击 更多查看。
Struts2过滤器在Web应用程序中的配置与请求参数处理:从struts.xml配置到doFilter方法实现详解 07-17 个人简历网页html代码 07-11 甜品奶茶店铺官网网站模板展示 06-23 docker无法下载镜像(群晖docker无法下载镜像) 04-18 [转载]MULTI PROVIDERS IN ANGULAR 2 03-31 绿色简洁医疗保健服务商城网页html模板 02-05 精美的花甲美食网站模板下载 01-22 Logstash配置文件加载失败:Pipeline启动问题与路径、语法错误详解及解决方案 01-22 Apache Lucene初始化时避免NoSuchDirectoryException:确保文件目录存在的实践方法 01-08 带视觉差特效的jquery鼠标hover图片放大插件 01-08 Bootstrap博客后台管理系统网站模板 01-08
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"