| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3350 人关注过本帖, 2 人收藏
标题:一个烦人的算法题。。。高手请进!!!
只看楼主 加入收藏
低调求学
Rank: 2
等 级:论坛游民
帖 子:51
专家分:33
注 册:2012-5-9
结帖率:64.29%
收藏(2)
已结贴  问题点数:20 回复次数:67 
一个烦人的算法题。。。高手请进!!!
【问题描述】
大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。
要求给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。
比如:n = 3,k=2 给出排列2 3 1,则它的下1个排列为3 1 2,下2个排列为3 2 1,因此答案为3 2 1

【输入】输入文件名“permutation.in”
第一行是一个正整数m,表示测试数据的个数,下面是m组测试数据,每组测试数据第一行是2个正整数n( 1 <= n < 1024 )和k(1<=k<=64),第二行有n个正整数,是1,2 … n的一个排列。
【输出】输出文件名“estdout.pc2”
对于每组输入数据,输出一行,n个数,中间用空格隔开,表示输入排列的下k个排列。
程序运行后结果示例:
【样例输入】
3
3 1
2 3 1
3 1
3 2 1
10 2   
1 2 3 4 5 6 7 8 9 10
【样例输出】
3 1 2
1 2 3
1 2 3 4 5 6 7 9 8 10
搜索更多相关主题的帖子: 测试 正整数 
2012-05-27 19:24
低调求学
Rank: 2
等 级:论坛游民
帖 子:51
专家分:33
注 册:2012-5-9
收藏
得分:0 
求高手相助。。。在线等!!!
2012-05-27 20:02
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:1 
不是很懂!帮你顶个贴吧····
2012-05-28 01:26
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
呵呵,为什么说是烦人呢?你是被迫要做这道题么?
题不难。如果没有别人给你满意的答案的话,开个50分贴我将给你一段代码(呵呵,本来要求100分的,可你没那么多分了)。还有这贴的20分我也要收哦(这是我的开价

重剑无锋,大巧不工
2012-05-28 08:11
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
回复 4楼 beyondyf
北大的1833 曾经用STL水过  另求杨大哥的代码
程序代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    int n, k, m, a[2000];
    scanf("%d",&m);
    while (m--){
        scanf("%d%d",&n,&k);

        for (int i=0;i<n;++i)
            scanf("%d",a+i);
        while (k--) next_permutation(a,a+n);
        for (int i=0;i<n;++i)
            cout << a[i] << (i==n-1?'\n':' ');
    }
    return 0;
}

收到的鲜花
  • beyondyf2012-06-01 19:49 送鲜花  45朵   附言:我很赞同

                                         
===========深入<----------------->浅出============
2012-05-28 08:33
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
老杨早上好,最近忙什么呢?身体好些了么?
我还不知道C++的算法库里有这样的函数。如果你的代码已经满足了楼主的要求,我把我的代码发给你

重剑无锋,大巧不工
2012-05-28 08:41
jfei
Rank: 4
来 自:郑州
等 级:业余侠客
帖 子:92
专家分:268
注 册:2011-8-27
收藏
得分:1 
5,6楼说法是好的。

虾米们!!!有意者加QQ 2434202652,2632939128联系我
2012-05-28 15:33
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呃,调查一下。论坛里有多少人能解此题?请举手。

不必发代码。说声“我能”就行。“我能”者,兄弟个人送20分。




先向andyzuo道个歉,我将楼下你的贴子删了。由于我已经置顶了,所以顶贴没有意义。

置顶的主要目的是调查一下论坛里喜欢算法并有一定能力的朋友有多少。

之后的跟贴请围绕主题进行。要么回答、探讨楼主的问题,要么参与我的调查。酱油贴就别发了,我会删掉的。六一前解除置顶,结束调查。


[ 本帖最后由 beyondyf 于 2012-5-29 21:59 编辑 ]

重剑无锋,大巧不工
2012-05-29 21:06
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:1 
我能。
收到的鲜花
  • beyondyf2012-05-30 07:53 送鲜花  45朵   附言:我很赞同
2012-05-30 00:44
sunnysab
Rank: 2
来 自:安徽安庆
等 级:论坛游民
帖 子:38
专家分:67
注 册:2011-8-11
收藏
得分:1 
我不能(不用给分了),凑个热闹而已

快乐一些~
2012-05-30 11:36
快速回复:一个烦人的算法题。。。高手请进!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027759 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved