关闭

PID3 / Jam的计数法 ☆

163人阅读 评论(0) 收藏 举报
分类:

https://www.rqnoj.cn/problem/3

水题

PID3 / 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,且不存在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 )

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

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

输出格式

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

/* ***********************************************
Author        :Lu_cky
Created Time  :2016年05月30日 星期一 20时05分46秒
File Name     :main.cpp
************************************************ */

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int SIZE=1e3+10;
const int maxn=1<<30;
char s1[30];
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
	int s,t,w;
	while(scanf("%d%d%d",&s,&t,&w)!=EOF){
		scanf("%s",s1);
		for(int i=0;i<5;i++){
			int ind=w-1,l=1;
			while(ind>=0&&s1[ind]=='a'+t-l){
				l++;
				ind--;
			}
			if(ind<0)break;
			s1[ind]++;
			for(int i=ind+1;i<w;i++)
				s1[i]=s1[ind]+i-ind;
			printf("%s\n",s1);
		}
	}
    return 0;
}


0
0
查看评论

RQNOJ:PID3 Jam的计数法

题目说明:
  • zhangyalin1992
  • zhangyalin1992
  • 2014-09-14 14:20
  • 876

算法训练 JAM计数法

问题描述   Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Ja...
  • github_33890270
  • github_33890270
  • 2016-05-09 00:43
  • 584

RQNOJ:PID3 / Jam的计数法

解题思路我们可以用一个大小为t-s+1的数组标记可用字母的使用情况(1代表使用,0代表未使用),对于给定的字母序列,在标记数组中我们首先找到一个本位是1而后面一位是0的位,我们知道,其后面的部分没有办法再增大了,然后将其与后面的位交换位置,并将其将其后面的所有的1全部放到紧随其后的位置,如: 1 ...
  • qq_21418163
  • qq_21418163
  • 2017-03-22 00:50
  • 130

蓝桥杯 算法训练 JAM计数法

问题描述   Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Ja...
  • SunMoonGalaxy
  • SunMoonGalaxy
  • 2017-02-15 12:26
  • 151

蓝桥杯 算法训练 麦森数

问题描述   形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。   任务:从文件中输入P(1000P...
  • SunMoonGalaxy
  • SunMoonGalaxy
  • 2017-02-15 12:23
  • 235

Jam的计数法 oj106

Jam的计数法 发布时间: 2017年5月25日 19:57   最后更新: 2017年5月26日 00:33   时间限制: 1000ms   内存限制: 128M 描述 Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,...
  • ZhangXiaoyu_sy
  • ZhangXiaoyu_sy
  • 2017-07-27 23:21
  • 137

2006(3)JAM的计数法

背景 noip2006普及第3题. 描述 Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们...
  • qq_36037845
  • qq_36037845
  • 2016-09-06 15:05
  • 402

JAM计数法

问题描述   Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在...
  • buctyyzyn
  • buctyyzyn
  • 2015-02-25 00:58
  • 448

rqnoj jam计数法

题目描述 Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数...
  • Roosevelty
  • Roosevelty
  • 2016-01-17 22:01
  • 570

1140 Jam的计数法

题目描述 Description Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这...
  • qq_36238595
  • qq_36238595
  • 2017-04-04 12:54
  • 189
    个人资料
    • 访问:13259次
    • 积分:924
    • 等级:
    • 排名:千里之外
    • 原创:82篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类