洛谷 P1327 數列排序 數論第三題

2021-10-05 22:41:38 字數 653 閱讀 6914

題目

題意:

給乙個陣列,問將其從小到大排序需要交換幾次數字;

分析:

用個map容器,來存每個值對應的位置,直接遍歷陣列,找到排序之後的陣列與原陣列不同的位置,然後用map來交換;

上**(詳解):

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

map<

int,

int> mp;

int n, ans =0;

int num[

100010

], pos[

100010];

intmain()

sort

(pos+

1,pos+n+1)

;for

(int i=

1; i<=n; i++)}

cout << ans << endl;

return0;

}

洛谷 P1327 數列排序

給定乙個數列,這個數列滿足ai aj i j 現在要求你把這個數列從小到大排序,每次允許你交換其中任意一對數,請問最少需要幾次交換?輸入格式 第一行,正整數n n 100,000 以下若干行,一共n個數,用空格分隔開,表示數列,任意 2 31 輸出格式 只有一行,包含乙個數,表示最少的交換次數。輸入...

數論 洛谷 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...