tags: 置換群 圖論目錄1
2345
3125
4每乙個點都有屬於他的環。
交換操作:某點的出度,會指向和他交換的點的下標所以最少要交換的次數,就是每次都讓環內的點交換
for (int j = i; !st[j]; j = b[j])
b[b[j]]
某一點下標對應的值,當成另外乙個的下標
b[j]
某一點下標對應的值
#include #include #include #include using namespace std;
const int maxn = 10000 + 10;
int n, cnt;
int b[maxn];
bool st[maxn];
int main()
}cout << n - cnt << endl;
return 0;
}
AcWing1224 交換瓶子
題 有 n 個瓶子,編號 1 n,放在架子上。比如有 5 個瓶子 2 1 3 5 4要求每次拿起 2 個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5對於這麼簡單的情況,顯然,至少需要交換 2 次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。本題思路比較精巧,需要用...
1224 交換瓶子
有 n 個瓶子,編號 1 n 放在架子上。比如有 5 個瓶子 2 1 3 5 4要求每次拿起 2 個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5對於這麼簡單的情況,顯然,至少需要交換 2 次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。第一行包含乙個整數 n 表示...
藍橋 交換瓶子
交換瓶子 有n個瓶子,編號 1 n,放在架子上。比如有5個瓶子 2 1 3 5 4要求每次拿起2個瓶子,交換它們的位置。經過若干次後,使得瓶子的序號為 1 2 3 4 5 對於這麼簡單的情況,顯然,至少需要交換2次就可以復位。如果瓶子更多呢?你可以通過程式設計來解決。輸入格式為兩行 第一行 乙個正整...