Exercise 18 排列 有限制條件

2021-07-11 18:00:28 字數 873 閱讀 5200

/*

陳潼公升

【排列】

題目描述 description

給出數字n以及x和y,請輸出數字1~n的所有排列,但要求排列中x必須在y的左邊方向,其它的數字置隨意。

輸入描述 input description

讀入整數n、x和y ( 1<=n<=10,x∈[1,n],y∈[1,n] )

輸出描述 output description

每行n個用空格隔開的數,表示乙個符合條件的排列。並且所有排列按字典序輸出。

樣例輸入 sample input

3 1 2

樣例輸出 sample output

1 2 3

1 3 2

3 1 2

問題分析:

思路與exercise(16)一樣,不過多了乙個條件:x必須在y的左邊

可以在放數的時候記錄當前數放在哪個盒子

輸出時直接判斷數的位置即可

*/#include

using

std::cin;

using

std::cout;

using

std::ends;

using

std::endl;

int arr[11] = ;

int book[11] = ; // 用於儲存各數的盒子位置

bool mark[10];

int n,x,y;

void dfs(int step)

for(i=1;i<=n;i++)

}return;

}int main()

hdu 1716 排列2 排列組合

問題描述 ray又對數字的列產生了興趣 現有四張卡片,用這四張卡片能排列出很多不同的4位數,要求按從小到大的順序輸出這些4位數 input 每組資料佔一行,代表四張卡片上的數字 0 數字 9 如果四張卡片都是0,則輸入結束。output 對每組卡片按從小到大的順序輸出所有能由這四張卡片組成的4位數,...

197 排列序號

是 這道題採取暴力解法會超時,應當對於原陣列的每乙個位置找到其後有多少個數比它小,然後再相加這些數與對應的權的成績。class solution long long ans 1,fac 1,cc 1 for int i len 2 i 0 i ans fac cc c i return ans 注意...

441 排列硬幣

你總共有 n 枚硬幣,你需要將它們擺成乙個階梯形狀,第 k 行就必須正好有 k 枚硬幣。給定乙個數字 n,找出可形成完整階梯行的總行數。n 是乙個非負整數,並且在32位有符號整型的範圍內。示例 1 n 5 硬幣可排列成以下幾行 因為第三行不完整,所以返回2.示例 2 n 8 硬幣可排列成以下幾行 因...