sicily 1544 Integer Generator
2015-11-10 19:17
302 查看
数位
题意:
给你一个数位系统(0到9),然后给你一个数串.判断其是否合法(含有数位系统没有的字符即是不合法,或者有前导0).
如果合法的话,输出其这个数串在这个数位系统的下一个数串
数据范围:
数位系统size<=10
数串长度未知
思路:
判断合不合法很容易,关键是这个下一个子串是怎么理解.
样例给了很多提示,数位系统是1,数串是1.那答案是11.如果按一进制去理解,1和11应该是同一个东西
还有,数位系统是987654321,数串是999,下一个居然是1000,而不是998,也就是说数位系统每个字符的权值是按照1到9这样.所以我们应该这样理解,数串在数位系统的排列,是以长度为第一关键字,以字典序为第二关键.并且如果数位系统含有0,那么长度要变长的时候,将添加次小的字符,像999变成1000.(如果数位系统只有0怎么办,这样的话数串肯定是不合法,要么有前导0,要么有数位系统没有的字符,到这里才明白这题为什么要这样出)
算法过程可以这样.先对数位系统从新排序,然后从后往前扫数串,如果发现不是最大的字符的话,就把它变成当前字符的下一个字符,然后后面的全部置为最小的字符.如果找不到,那么全部的字符也变成最小的字符,然后在前面添加一个最小的字符,如果最小的字符是0,那么添加次小的字符
总结:从后往前扫,把最大字符的为置为最小字符,出现非最大字符则+1,退出循环.全部为最大则在最前面添加一个最小非零的字符
题意:
给你一个数位系统(0到9),然后给你一个数串.判断其是否合法(含有数位系统没有的字符即是不合法,或者有前导0).
如果合法的话,输出其这个数串在这个数位系统的下一个数串
数据范围:
数位系统size<=10
数串长度未知
思路:
判断合不合法很容易,关键是这个下一个子串是怎么理解.
样例给了很多提示,数位系统是1,数串是1.那答案是11.如果按一进制去理解,1和11应该是同一个东西
还有,数位系统是987654321,数串是999,下一个居然是1000,而不是998,也就是说数位系统每个字符的权值是按照1到9这样.所以我们应该这样理解,数串在数位系统的排列,是以长度为第一关键字,以字典序为第二关键.并且如果数位系统含有0,那么长度要变长的时候,将添加次小的字符,像999变成1000.(如果数位系统只有0怎么办,这样的话数串肯定是不合法,要么有前导0,要么有数位系统没有的字符,到这里才明白这题为什么要这样出)
算法过程可以这样.先对数位系统从新排序,然后从后往前扫数串,如果发现不是最大的字符的话,就把它变成当前字符的下一个字符,然后后面的全部置为最小的字符.如果找不到,那么全部的字符也变成最小的字符,然后在前面添加一个最小的字符,如果最小的字符是0,那么添加次小的字符
总结:从后往前扫,把最大字符的为置为最小字符,出现非最大字符则+1,退出循环.全部为最大则在最前面添加一个最小非零的字符
相关文章推荐
- soj1005. Roll Playing Games
- soj1041. Pushing Boxes
- Sicily 1007 To and Fro
- 中大周赛 2014年每周一赛第二场 Meet and Greet
- sicily 3980 二进制转十进制
- sicily 1137 河床
- sicily 6084 Times17
- sicily 1375 Balanced lineup
- sicily 1282 Computer Game
- sicily 1140 国王的遗产
- sicily 1513 Decoding
- 【SOJ1136】【cogs775】山海经
- SOJ--1117: 最大整数
- SOJ--Zig-Zag
- SOJ--4389: 川大贴吧水王
- SOJ--4393: LaoB's problem1
- SOJ 1321. Robot
- SOJ 1036. Crypto Columns
- SOJ 1310. Right-Heavy Tree
- SOJ 1022. Poor contestant Prob