1720 交換瓶子

2021-09-12 17:32:24 字數 728 閱讀 2444

1720: 交換瓶子

時間限制: 1 sec 記憶體限制: 128 mb

[提交][狀態][討論版]

題目描述

有n個瓶子,編號 1 ~ n,放在架子上。

比如有5個瓶子:

2 1 3 5 4

要求每次拿起2個瓶子,交換它們的位置。

經過若干次後,使得瓶子的序號為:

1 2 3 4 5

對於這麼簡單的情況,顯然,至少需要交換2次就可以復位。

如果瓶子更多呢?你可以通過程式設計來解決。

輸入第一行: 乙個正整數n(n<10000), 表示瓶子的數目

第二行:n個正整數,用空格分開,表示瓶子目前的排列情況。

輸出輸出資料為一行乙個正整數,表示至少交換多少次,才能完成排序。

樣例輸入

53 1 2 5 4

樣例輸出

3//n比較大不應該直接用選擇排序

ac_code:

#include using namespace std;

int a[1005],flag[1005];

int main()

for(int i = 1; i <= n; i++)//記錄a[i]值的位置

int temp,ans = 0,pos;

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

cout

}

藍橋 交換瓶子

交換瓶子 有n個瓶子,編號 1 n,放在架子上。比如有5個瓶子 2 1 3 5 4要求每次拿起2個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5 對於這麼簡單的情況,顯然,至少需要交換2次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。輸入格式為兩行 第一行 乙個正整...

藍橋 交換瓶子

有n個瓶子,編號 1 n,放在架子上。比如有5個瓶子 2 1 3 5 4 要求每次拿起2個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5 對於這麼簡單的情況,顯然,至少需要交換2次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。輸入格式為兩行 第一行 乙個正整數n n...

1224 交換瓶子

有 n 個瓶子,編號 1 n 放在架子上。比如有 5 個瓶子 2 1 3 5 4要求每次拿起 2 個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5對於這麼簡單的情況,顯然,至少需要交換 2 次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。第一行包含乙個整數 n 表示...