博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA146 POJ1146 ID Codes【全排列】
阅读量:7153 次
发布时间:2019-06-29

本文共 2896 字,大约阅读时间需要 9 分钟。

Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 6932   Accepted: 4115

Description

It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In order to exercise greater control over its citizens and thereby to counter a chronic breakdown in law and order, the Government decides on a radical measure--all citizens are to have a tiny microcomputer surgically implanted in their left wrists. This computer will contains all sorts of personal information as well as a transmitter which will allow people's movements to be logged and monitored by a central computer. (A desirable side effect of this process is that it will shorten the dole queue for plastic surgeons.)  
An essential component of each computer will be a unique identification code, consisting of up to 50 characters drawn from the 26 lower case letters. The set of characters for any given code is chosen somewhat haphazardly. The complicated way in which the code is imprinted into the chip makes it much easier for the manufacturer to produce codes which are rearrangements of other codes than to produce new codes with a different selection of letters. Thus, once a set of letters has been chosen all possible codes derivable from it are used before changing the set.  
For example, suppose it is decided that a code will contain exactly 3 occurrences of `a', 2 of `b' and 1 of `c', then three of the allowable 60 codes under these conditions are:  
abaabc      abaacb      ababac
These three codes are listed from top to bottom in alphabetic order. Among all codes generated with this set of characters, these codes appear consecutively in this order.  
Write a program to assist in the issuing of these identification codes. Your program will accept a sequence of no more than 50 lower case letters (which may contain repeated characters) and print the successor code if one exists or the message `No Successor' if the given code is the last in the sequence for that set of characters.  

Input

Input will consist of a series of lines each containing a string representing a code. The entire file will be terminated by a line consisting of a single #.

Output

Output will consist of one line for each code read containing the successor code or the words 'No Successor'.

Sample Input

abaacbcbbaa#

Sample Output

ababacNo Successor

Source

,UVA 146

问题链接:。

题意简述:参见上文。

问题分析
求输入字符串的下一个排列,不存在的话则输出“No Successor”。

程序说明:(略)

题记(略)

AC的C++语言程序如下:

/* UVA146 POJ1146 ID Codes */#include 
#include
#include
#include
using namespace std;const int N = 50;char s[N+1];int main(){ while(scanf("%s", s) != EOF) { if(s[0] == '#') break; if(next_permutation(s, s + strlen(s))) printf("%s\n", s); else printf("No Successor\n"); } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563623.html

你可能感兴趣的文章
文件下载【PHP】
查看>>
iostat命令介绍及C++对其返回值的提取处理
查看>>
手机剩余内存计算方法
查看>>
IOS 利用core text对文字进行排版
查看>>
mysql 表查询
查看>>
org.hibernate.LazyInitializationException
查看>>
java开发的微信分享到朋友圈功能
查看>>
linux命令之cd命令详解
查看>>
一些报错解决办法
查看>>
Quartz——DateIntervalTrigger触发器
查看>>
VS每次都重复编译的问题
查看>>
Top500 Green500 Graph500
查看>>
Inotify+rsync实现自动化复制存储方案
查看>>
NO.68 文档管理
查看>>
人家写代码,我写BUG的日子(1)
查看>>
windows Azure 初体验
查看>>
Bash基础特性 -- 卷一
查看>>
linux系统查看命令
查看>>
JAVA推荐网站
查看>>
我的友情链接
查看>>