給定乙個數列,這個數列滿足ai≠aj(i≠j),現在要求你把這個數列從小到大排序,每次允許你交換其中任意一對數,請問最少需要幾次交換?
輸入格式:
第一行,正整數n (n<=100,000)。
以下若干行,一共n個數,用空格分隔開,表示數列,任意-2^31
輸出格式:
只有一行,包含乙個數,表示最少的交換次數。
輸入樣例#1: 複製
88 23 4 16 77 -5 53 100
輸出樣例#1: 複製
5思路:貪心。
#include#include#include
#include
#include
using
namespace
std;
mapid;
intn,ans;
int num[100010],pos[100010
];int
main()
cout
<}
洛谷 P1327 數列排序 數論第三題
題目 題意 給乙個陣列,問將其從小到大排序需要交換幾次數字 分析 用個map容器,來存每個值對應的位置,直接遍歷陣列,找到排序之後的陣列與原陣列不同的位置,然後用map來交換 上 詳解 include include include include include define ll long lo...
洛谷p1062 數列
給定乙個正整數k 3 k 15 把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k 3時,這個序列是 1,3,4,9,10,12,13,該序列實際上就是 3 0,3 1,3 0 3 1,3 2,3 0 3 2,3 1 3 2,3 0 3 1 3 2,請你求出這個序列的第n...
洛谷P1062(數列)
題目 給定乙個正整數k 3 k 15 把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k 3時,這個序列是 1,3,4,9,10,12,13,即3 0,3 1,3 0 3 1 3 2,3 0 3 2,3 1 3 2,3 0 3 1 3 2 請你求出這個序列的第n項的值 用...