Description

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,且不存在Jam数字P,使U < P < V)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。

Input

输入有2行,第1行为3个正整数,用一个空格隔开: s t w (其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足:1≤s<T≤26, 2≤w≤t-s ) 第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。 所给的数据都是正确的,不必验证。

Output

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

Sample Input

5 25 10
efghijkluw

Sample Output

efghijklux
efghijkluy
efghijklvw
efghijklvx
efghijklvy

Source

NOIP 2006 普及组
#include<bits/stdc++.h>
using namespace std;#define ll long long
#define eps 1e-9
#define pi acos(-1)const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int maxn = 100 + 8;int s, t, w;
char ss[maxn], si[maxn];int main()
{std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> s >> t >> w;cin >> ss;si[w - 1] = 96 + t;///用si数组来储存最终的字符串for(int i = w - 2; i >= 0; i--)si[i] = si[i + 1] - 1;for(int i = 0; i < 5; i++)///五次
    {bool flag = 1;int id = w - 1;while(ss[id] == si[id])id--;ss[id]++;for(int i = id + 1; i < w; i++)ss[i] = ss[i - 1] + 1;for(int i = 0; i < w; i++)if(ss[i] != si[i])///判断该字符串是不是已经达到了最终字符串flag = 0;for(int i = 0; i < w; i++)cout << ss[i];cout << '\n';if(flag)break;///如果已经为最终字符串,就停止
    }return 0;
}

转载于:https://www.cnblogs.com/RootVount/p/11502447.html

SDNU 1176.Jam的计数法(思维)相关推荐

  1. 洛谷P1061 Jam的计数法 数学

    洛谷P1061 Jam的计数法 数学  已知一个字符串 其 均有 s--t构成 且字符串要求 s[ i ]<s[ j ] i < j 已知一个字符串 求按字典序排列 的后5个字符串 1. ...

  2. 洛谷P1061 Jam的计数法

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字 ...

  3. Jam的计数法--Java

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小 写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文 ...

  4. 【NOIP2006 普及组】T3 Jam 的计数法 题解

    题目传送门 题目描述 Jam 是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩. 在他的计数法中,每个数字的位数都是相同的(使用相同个数 ...

  5. C++题解:【NOIP2006PJ】Jam的计数法(count)

    题目链接 题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母 ...

  6. Jam的计数法 题解

    JamJamJam的计数法 题解 题目 题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数 ...

  7. P1061 [NOIP2006 普及组] Jam 的计数法

    解题思路:对于每一个字符串,判断第n-1个位置能不能放,如果不能再去前面找,如果可以,就把从当前位置开始,所有的值都往后加一位.这里我用一个map维护数字与字符之间的映射,方便查找.发现规律:倒数第i ...

  8. RNQOJ Jam的计数法

    题目:https://www.rqnoj.cn/problem/3 非递归做法:(严格递增 单调大于 不可等于  ) 做法:循环体 <1>操作字符串 str 从后往前找,k=1,如果s[w ...

  9. java中jam_Jam的计数法 (Java代码)

    题目介绍: 其实这个题猛的一读起来是没有什么头绪的,什么是Jam的计数法?前提是知道什么是Jam数,Jam数其实就是几个字符组成的一个字符串,但是这个字符串中的字符遵循严格的递增顺序,这个题的意思就是 ...

最新文章

  1. linux 进程的作用,linux的几个进程的作用
  2. 【深度学习】有个洋人小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!...
  3. java 调度quartz,java quartz任务调度
  4. 使用CAtlRegExp正则表达式检查浮点数输入
  5. left join 多条件_第九篇|Spark的五种JOIN策略解析
  6. CiteSpace在CNKI中的应用
  7. iOS传感器开发——为APP添加手机密码、指纹进行安全验证
  8. tomcat启动时报错ports are invalid,默认端口不要为-1
  9. 飞机大战(Java)
  10. 黑客帝国_屏幕保护程序
  11. 一份平面设计指南分享给大家
  12. 一些常用软件的网络端口协议分类介绍
  13. 如何刻录服务器安装系统光盘启动盘,如何刻录系统光盘
  14. java中nextToken,Java StringTokenizer nextToken()用法及代碼示例
  15. 关于openpyxl读取excel中图片(shape)的注意点
  16. Java代码 打印等腰三角形、菱形和平行四边形
  17. React 项目兼容低版本浏览器
  18. /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final
  19. java pg数据库事务回滚_PostgreSQL事务特性之ROLLBACK
  20. brew mysql 配置文件_修改用brew安装的mysql配置

热门文章

  1. 守卫者的挑战(guard)
  2. git报ssh variant 'simple' does not support setting port解决办法
  3. Relation(NOIP模拟赛)(二分图染色)
  4. 初学视觉学习笔记----用摄像头获取图片
  5. HDU 1317 XYZZY(floyd+bellman_ford判环)
  6. 在centOS上搭建wordpress博客系统
  7. eclipse设置自定义快捷键
  8. Android:简单的弹幕效果达到
  9. EF中的那些批量操作
  10. One Bug of WatiN?