演算法提高 排列數

2021-07-29 07:03:04 字數 1147 閱讀 8681

時間限制:1.0s 記憶體限制:256.0mb

提交此題

問題描述

0、1、2三個數字的全排列有六種,按照字母序排列如下:

012、021、102、120、201、210

輸入乙個數n

求0~9十個數的全排列中的第n個(第1個為0123456789)。

輸入格式

一行,包含乙個整數n

輸出格式

一行,包含一組10個數字的全排列

樣例輸入

1 樣例輸出

0123456789

資料規模和約定

0 < n <= 10!

#include 

#include

using

namespace

std;

int a[11];

const

int n=10;

char str[5000000][11];

int cnt;

int flag[10];//陣列值為狀態,下標是數字

int num;

void dfs(int cur)

printf("\n");}}

else

for(int i=0;iif(!flag[i])

}}int main()

簡單的dfs全排列 注意超時

貼上我的超時**

#include 

#include

using

namespace

std;

int a[11];

const

int n=10;

char str[5000000][11];

int cnt;

int num;

void dfs(int cur)

printf("\n");}}

else

for(int i=0;iint ok=1;

for(int j=0;jif(a[cur]==a[j])

ok=0;

}if(ok) dfs(cur+1);

}}int main()

互相比較一下:在於優化判斷該數字是否已經使用

藍橋杯演算法提高 排列數

原題 演算法提高 排列數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 0 1 2三個數字的全排列有六種,按照字母序排列如下 012 021 102 120 201 210 輸入乙個數n 求0 9十個數的全排列中的第n個 第1個為0123456789 輸入格式 一行,包含乙個整數n 輸出...

C程式 藍橋 演算法提高 排列數

問題描述 0 1 2三個數字的全排列有六種,按照字母序排列如下 012 021 102 120 201 210 輸入乙個數n 求0 9十個數的全排列中的第n個 第1個為0123456789 輸入格式 一行,包含乙個整數n 輸出格式 一行,包含一組10個數字的全排列 樣例輸入 樣例輸出 資料規模和約定...

演算法提高 逆序排列

問題描述 編寫乙個程式,讀入一組整數 不超過20個 並把它們儲存在乙個整型陣列中。當使用者輸入0時,表示輸入結束。然後程式將把這個陣列中的值按逆序重新存放,並列印出來。例如 假設使用者輸入了一組資料 7 19 5 6 2 0,那麼程式將會把前五個有效資料儲存在乙個陣列中,即7 19 5 6 2,然後...