4 aacc
Sample Output aacc acac acca caac caca ccaa 6
排列的字典序问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 18 Accepted: 16
问题描述:
, n?n个元素{1,2, }有n!个不同的排列。将这n!个排列按字典序排列,并编号为0,1,…,
n!-1。每个排列的编号为其字典序值。例如,当n=3时,6 个不同排列的字典序值如下:
字典序值 0 1 2 3 4 5 排列 123 132 213 231 312 321
算法设计:
, n }的一个排列,计算出这个排列的字典序值,以及按字典?给定n以及n个元素{1,2,
序排列的下一个排列。
数据输入:
输出元素个数n。接下来的1 行是n个元素 , n }的一个排列。?{1,2,
结果输出:
将计算出的排列的字典序值和按字典序排列的下一个排列输出。第一行是字典序值,第2行是按字典序排列的下一个排列。 Sample Input 8
2 6 4 5 8 1 7 3 Sample Output 8227
2 6 4 5 8 3 1 7
集合划分问题I
Time limit: 1000MS Memory limit: 32768K
Total Submit: 14 Accepted: 2
问题描述:
, n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,?n个元素的集合{1,2,
3,4}可以划分为15 个不同的非空子集如下: {{1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}}, {{2,3},{1},{4}}, {{2,4},{1},{3}}, {{3,4},{1},{2}}, {{1,2},{3,4}}, {{1,3},{2,4}}, {{1,4},{2,3}}, {{1,2,3},{4}}, {{1,2,4},{3}}, {{1,3,4},{2}}, {{2,3,4},{1}}, {{1,2,3,4}}
算法设计:
, n }可以划分为多少个不同的非空子集。?给定正整数n,计算出n个元素的集合{1,2,
数据输入:
输入数据第1 行是元素个数n。 结果输出:
将计算出的不同的非空子集数输出. Sample input 5
Sample output 52
集合划分问题II
Time limit: 1000MS Memory limit: 32768K
Total Submit: 8 Accepted: 5
问题描述:
, n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,?n个元素的集合{1,2,
3,4}可以划分为15 个不同的非空子集如下: {{1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}}, {{2,3},{1},{4}}, {{2,4},{1},{3}}, {{3,4},{1},{2}}, {{1,2},{3,4}}, {{1,3},{2,4}}, {{1,4},{2,3}}, {{1,2,3},{4}}, {{1,2,4},{3}}, {{1,3,4},{2}},
{{2,3,4},{1}}, {{1,2,3,4}}
其中,集合{{1,2,3,4}}由1 个子集组成;集合{{1,2},{3,4}},{{1,3},{2,
4}},{{1,4},{2,3}},{{1,2,3},{4}},{{1,2,4},{3}},{{1,3,4},{2}},{{2,
3,4},{1}}由2 个子集组成;集合{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},
{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{1},{2}}由3 个子集组
成;集合{{1},{2},{3},{4}}由4 个子集组成。
算法设计:
, n }可以划分为多少个不同的由m?给定正整数n 和m,计算出n 个元素的集合{1,2,
个非空子集组成的集合。
数据输入:
输入的第1 行是元素个数n和非空子集数m。 结果输出:
将计算出的不同的由m个非空子集组成的集合数输出。 Sample input 4 3
Sample output 6
半数单集问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 11 Accepted: 4
问题描述:
给定一个自然数n,由n 开始可以依次产生半数集set(n)中的数如下。 (1) n∈set(n);
(2) 在n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;
(3) 按此规则进行处理,直到不能再添加自然数为止。
例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6 个元素。 注意半数集不是多重集。集合中已经有的元素不再添加到集合中。 算法设计:
对于给定的自然数n,计算半数集set(n)中的元素个数。 数据输入: 给出整数n。(0
结果输出:
给出半数集set(n)中的元素个数。 Sample input 6
Sample output 6
双色Hanoi塔问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 44 Accepted: 22
问题描述:
设A、B、C是3 个塔座。开始时,在塔座A上有一叠共n个圆盘,这些圆盘自下而上,
由大到小地叠在一起。各圆盘从小到大编号为1,2,……,n,奇数号圆盘着红色,偶数号
圆盘着蓝色,如图所示。现要求将塔座A 上的这一叠圆盘移到塔座B 上,并仍按同样顺序
叠置。在移动圆盘时应遵守以下移动规则: 规则(1):每次只能移动1 个圆盘;
规则(2):任何时刻都不允许将较大的圆盘压在较小的圆盘之上; 规则(3):任何时刻都不允许将同色圆盘叠在一起;
规则(4):在满足移动规则(1)-(3)的前提下,可将圆盘移至A,B,C中任一塔座上。