有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
55 4 3 2 1
樣例輸出
32
方法一:
這題我還以為是貪心,但是個暴力,如果 a[i] 不是 i,則將下標為 i 的值放到 a[i] 位置,這樣起碼至少可以讓 a[i] 歸位
但不能全對…
#include
using
namespace std;
intmain()
} cout << ans;
return0;
}
複雜度分析 C05 變數屬性
6.總結 語法 property type var name 示例 intmain void f include register int g val error int main include int g val 全域性變數,可以在程式的任意位置訪問 static int g sval 靜態全域...
C 05 單例模式
乙個類只能被例項化一次,產生乙個物件。在類中,要構造乙個例項,就需要通過建構函式,所以為了防止在外部呼叫類的建構函式而構造例項,需要將建構函式的訪問許可權標記為protected或private 並且需要提供給全域性訪問點,就需要在類中定義乙個static函式,返回在類內部唯一構造的例項。懶漢式 在...
設計模式(C ) 05介面卡模式
推薦閱讀 自然界有一條規則 適者生存。意思是生物要使用自然界的變化 在程式界中則需要新環境呼叫現存物件。那麼,如何在新環境中呼叫 現存的物件 呢?採用介面卡模式可以解決。介面卡模式使得新環境中不需要去重複實現已經存在了的實現,而很好的把現有的物件 指原來環境中的現有物件 加入到新環境中來使用。介面卡...