Ignatius and the Princess II

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9458    Accepted Submission(s): 5532

Problem Description
Now
our hero finds the door to the BEelzebub feng5166. He opens the door
and finds feng5166 is about to kill our pretty Princess. But now the
BEelzebub has to beat our hero first. feng5166 says, "I have three
question for you, if you can work them out, I will release the Princess,
or you will be my dinner, too." Ignatius says confidently, "OK, at
last, I will save the Princess."

"Now I will show you the first
problem." feng5166 says, "Given a sequence of number 1 to N, we define
that 1,2,3...N-1,N is the smallest sequence among all the sequence which
can be composed with number 1 to N(each number can be and should be use
only once in this problem). So it's easy to see the second smallest
sequence is 1,2,3...N,N-1. Now I will give you two numbers, N and M. You
should tell me the Mth smallest sequence which is composed with number 1
to N. It's easy, isn't is? Hahahahaha......"
Can you help Ignatius to solve this problem?

 
Input
The
input contains several test cases. Each test case consists of two
numbers, N and M(1<=N<=1000, 1<=M<=10000). You may assume
that there is always a sequence satisfied the BEelzebub's demand. The
input is terminated by the end of file.
 
Output
For
each test case, you only have to output the sequence satisfied the
BEelzebub's demand. When output a sequence, you should print a space
between two numbers, but do not output any spaces after the last number.
 
Sample Input
6 4
11 8
 
Sample Output
1 2 3 5 6 4
1 2 3 4 5 6 7 9 8 11 10
 
Author
Ignatius.L
 
Recommend
We have carefully selected several similar problems for you:  1026 1038 1035 1030 1006
 
[题意]:1~n的全排列中的第m个排列
[分析]:使用next_permutation简便
[代码]:

#include <bits/stdc++.h>
using namespace std;
const int N=1e4+5;
#define INF 0x7fffffff
int n,m,a[N];
int main()
{
while(cin>>n>>m){
for(int i=1;i<=n;i++)
a[i]=i; //初始化1~n的排列 while(--m) //注意从1开始
next_permutation(a+1,a+n+1); //1~n的排列的第m个 for(int i=1;i<n;i++) //注意格式
printf("%d ",a[i]);
printf("%d\n",a[n]);
}
}

最新文章

  1. android之volley学习
  2. canvas :曲线的面积图 加渐变效果
  3. LeetCode2:Median of Two Sorted Arrays
  4. 关于delete
  5. addlinkedserver
  6. linux sed命令详解(转)
  7. 【Hibernate步步】--一对一映射双向关联具体解释(两)
  8. javascript权威指南(6) - 对象
  9. Java 泛型 泛型代码和虚拟机
  10. Java初学者:深度辨析&quot;==&quot;与equals的区别
  11. 编程岗位电话面试问答Top 50[转]
  12. vue slot
  13. linux cron计划任务、chkconfig 命令、systemd命令、unit 相关、target 相关
  14. avoid
  15. 【BZOJ1295】[SCOI2009]最长距离(最短路)
  16. UI设计, 弹出对话框 设计(区分强调按钮和普通按钮,给用户一个 正向建议的强调按钮)
  17. cocos代码研究(2)Label学习笔记
  18. rabbitmq direct、fanout、topic 三种Exchange java 代码比较
  19. 微信小程序绑定数据(微信小程序交流群:604788754)
  20. Android 在已有的项目上创建新的项目

热门文章

  1. poj 3273 分期问题 最大化最小值
  2. poj 2377 拉最长的线问题 kruskal算法
  3. requests中文页面乱码解决方案【转】
  4. JQ剪辑图片插件,适用于移动端和PC端
  5. Linux下安装nginx,以及启动和停止
  6. JavaScript 计时事件-setInterval()-clearInterval() -setTimeout()-clearTimeout()
  7. HDU 1535 S-Nim(SG函数)
  8. 【Climbing Stairs】cpp
  9. Python学习-day14-前台总结
  10. CSU-2173 Use FFT