搜索练习

Posted gc812

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索练习相关的知识,希望对你有一定的参考价值。

n的全排列

题目描述

输入一个整数n,输出的n的全排列。

输入

 

输出

 

样例输入

3

样例输出

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

技术分享
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>

using namespace std;
int n;
int visi[1005],a[1005];
void print(int x) 
{ 
    for(int i=1;i<x;++i)printf("%d ",a[i]); 
    printf("%d",a[x]); 
    puts("");
} 
void dfs(int cur) 
{ 
    if(cur==n+1)print(cur-1); 
    else for(int i=1;i<=n;i++) 
    { 
        if(!visi[i]) 
        { 
            a[cur]=i; 
            visi[i]=1; 
            dfs(cur+1); 
            visi[i]=0; 
        } 
    } 
} 

int main()
{
    cin>>n;
    dfs(1);
    puts("");
    return 0;
}
9018 1541

 









 

1542: n个数中取m个数从小到大排列

题目描述

n个数中取m个数从小到大排列,详见样例。

输入

 

输出

 

样例输入

3 2

样例输出

1 2
1 3
2 3


当你要输出全排列的时候,你的cur是到N+1的时候结束

 那么cur记录的是当前答案长度是多少 
 那么你要取M个 答案长度就是M
他是按照字典序输出的 
你搜索的时候找这个位置上的数是多少肯定是for1到n
那么先输出的肯定是字典序最小的

所以就不需要考虑排序的问题啦





以上是关于搜索练习的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

csharp Epicor标准练习片段

golang 去练习片段

如何在 BottomNavigationView 的片段上打开搜索界面?

26个jQuery代码片段使用技巧

ktor HTTP API 练习