Ignatius and the Princess II
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
Sample Output
1 2 3 5 6 4
1 2 3 4 5 6 7 9 8 11 10
题目倒是不太难!这是多亏了next_premutation函数的莫大神奇!
关于next_permutation函数,参阅http://blog.csdn.net/lishuhuakai/article/details/8006937!
废话不多说,参考代码!
-
#include<iostream>
-
#include<cstdio>
-
#include<algorithm>
-
usingnamespacestd;
-
constintSIZE=1002;
-
-
intmain()
-
{
-
intn,m;
-
inti,count;
-
intseq[SIZE];
-
while(scanf("%d%d",&n,&m)!=EOF)
-
{
-
for(i=0;i<SIZE;i++)
-
seq[i]=i+1;
-
count=0;
-
do
-
{
-
count++;
-
if(count==m)
-
{
-
for(i=0;i<n;i++)
-
if(i==n-1)
-
cout<<seq[i];
-
else
-
cout<<seq[i]<<"";
-
cout<<endl;
-
break;
-
}
-
}
-
while(next_permutation(seq,seq+n));
-
}
-
return0;
-
}
分享到:
相关推荐
杭电oj1000题解题报告
杭电OJ题目分类的叙述,可以方便去学习去做。
杭电OJ 2028代码 the rosolve of the hdu 2028
杭电OJ(1000-1099) AC 代码
本资源主要提供了杭电oj题目分类和自测状况两大类 可实现随机选题等功能.
杭电OJ部分威士忌的代码 杭电OJ部分威士忌的代码杭电OJ部分威士忌的代码
杭电oj上的一些疑问,适用于初学者,可以解答一些疑问 都是一些水题
杭电oj 1047习题
杭电oj分类
杭州电子科技大学 oj离线版
这是HDUOJ上面的140道题目的答案,其中大部分都是简单题,有些太简单的就没有收集进去,代码为C/C++,全都AC了的,其中有些有具体的说明是怎么做的,例如博弈论那些
课程资源 杭电OJ1000-1099答案 ,仅供参考...
杭电oj的离线版以及题目分类的文档 更加一目了然 方便选择适合的题目做 适合暂时上不了网的用于练习
基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,南阳OJ,杭电OJ ,北大OJ,浙大OJ.zip
这是杭电OJ上某些题的解题报告,后续还有上传很多!
杭电oj1048答案,c++代码,适合初学者,思路简单
杭电离线oj(2010版),方便不能上网的朋友用,比别的版本增加了很多题!
杭电ACM2000-2011题已提交的代码!保证正确!