排列轉換
現在有兩個長度為n的排列p和s。要求通過交換使得p變成s。交換 pi 和 pj 的代價是|i-j|。要求使用最少的代價讓p變成s。
Input
單組測試資料。 第一行有一個整數n (1≤n≤200000),表示排列的長度。 第二行有n個範圍是1到n的整數,表示排列p。每個整數只出現一次。 第三行有n個範圍是1到n的整數,表示排列s。每個整數只出現一次。
Output
輸出一個整數,表示從排列p變到s最少要多少代價。
Input示例
樣例輸入1 4 4 2 1 3 3 2 4 1
Output示例
樣例輸出1 3
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a[200001];
int target[200001];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int v;
for (int i = 0; i < n; i++)
{
cin >> v;
target[v] = i;
}
long long int result = 0;
for (int i = 0; i < n; i++)
{
result += abs(i - target[a[i]]);
}
result /= 2;
cout << result << endl;
return 0;
}
相關文章
- Linux 命令排列和命令替換Linux
- Vb中控制元件的自動排列 (轉)控制元件
- 亂序排列檔案中的所有行(轉)
- 逆序排列
- 起泡法按照時間排列檔案(FSO)(修正) (轉)
- 字串的排列字串
- 字串全排列字串
- 排列 題解
- 排列組合
- pdf轉換成word,免費轉換
- oracle行列轉換-多行轉換成字串Oracle字串
- 行列轉換,列行轉換統計
- js顯式轉換和隱式轉換JS
- AD模數轉換&DA數模轉換
- oracle行列轉換-字串轉換成多列Oracle字串
- oracle行列轉換-多列轉換成字串Oracle字串
- heic格式轉換jpg工具——轉易俠heic轉換器
- java型別轉換與強制型別轉換(轉)Java型別
- 轉換流
- 字串轉換字串
- 行列轉換
- JavaScript字串逆序排列JavaScript字串
- [MATLAB]排列大小Matlab
- 生成隨機排列隨機
- 字串的全排列字串
- 圖片格式怎麼轉換,如何轉換jpg
- PHP 型別轉換&&型別強制轉換PHP型別
- 靜態地址轉換+埠複用地址轉換
- 動態地址轉換+埠複用地址轉換
- [轉]Linux、windows下回車換行格式轉換LinuxWindows
- 用於日期轉換的訊息轉換器
- Linux 轉換換行符Linux
- 現在有"abcdefghijkl”12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?字元
- JDom 常用轉換方法 (轉)
- 行列轉換 交叉表 (轉)
- PDF轉換CAD圖紙,如何快速轉換呢?
- 圖片格式轉換,JPG圖片轉換成PDF
- java json字串轉換為物件,轉換為listJavaJSON字串物件