题目名称 327. 排序集合
输入输出 sort.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2009-04-24加入
开放分组 全部用户
提交状态
分类标签
动态规划 递推
分享题解
通过:11, 提交:16, 通过率:68.75%
Gravatar1020 100 0.000 s 0.00 MiB C++
Gravatar斯内普和骑士 100 0.000 s 0.00 MiB C++
Gravatar苏轼 100 0.003 s 0.15 MiB Pascal
GravatarBYVoid 100 0.003 s 0.26 MiB C++
Gravatarkaaala 100 0.003 s 0.27 MiB C++
Gravatarzhengtn03 100 0.003 s 0.32 MiB C++
Gravatar王者自由 100 0.003 s 1.96 MiB C++
GravatarQhelDIV 100 0.003 s 3.36 MiB C++
GravatarPom 100 0.004 s 0.26 MiB C++
Gravatarwo shi 刘畅 100 0.027 s 0.11 MiB Pascal
本题关联比赛
HAOI2009 模拟试题4
关于 排序集合 的近10条评论(全部评论)

327. 排序集合

★★   输入文件:sort.in   输出文件:sort.out   简单对比
时间限制:1 s   内存限制:128 MiB

题目描述


对于集合 N={1 , 2 ,…, n} 的子集,定义一个称之为“小于”的关系:

设 S 1 ={X 1 , X 2 ,…, X i } , (x 1 <x 2 < … <X i ) ,

   S 2 ={Y 1 , Y 2 ,…, Y j } , (Y 1 <Y 2 < … <Y i ) ,

如果存在一个 k , (O ≤ k ≤ min{i , j)) ,使得 X 1 =Y 1 ,…, X k =Y k ,且 k=i 或 X (k+1) <Y (k+1) ,则称 S 1 “小于” S 2 。

你的任务是,对于任意的 n(n ≤ 31) 及 k(k<2^n ) ,求出第 k 小的子集。

【输入】

输入文件仅一行,包含两个用空格隔开的自然数, n 和 k 。

【输出】

输出文件仅一行,是该子集的元素,由小到大排列。空集输出 0 。

【样例】

sort.in

3 4

sort.out

1 2 3