現在有兩個長度為n的排列p和s。要求通過交換使得p變成s。交換 p
i'>pi
pi 和 p
j'>pj
pj 的代價是|i-j|。要求使用最少的代價讓p變成s。
input單組測試資料。
第一行有乙個整數n (1≤n≤200000),表示排列的長度。
第二行有n個範圍是1到n的整數,表示排列p。每個整數只出現一次。
第三行有n個範圍是1到n的整數,表示排列s。每個整數只出現一次。output輸出乙個整數,表示從排列p變到s最少要多少代價。sample input
樣例輸入1sample output44 2 1 3
3 2 4 1
樣例輸出13
1 #include 2view codeusing
namespace
std;
3 #include
4 #include
5 #include6 #include7 #include8 #include9 #include10 #include11 #include12 #include13 #include 14 #include 15
int a[210000
];16
int b[210000
];17
intmain()
1827
long
long sum=0;28
for(int i=1;i<=t;i++)
2934 cout<2;35
return0;
36 }
51nod 1574 排列轉換
現在有兩個長度為n的排列p和s。要求通過交換使得p變成s。交換 pi 和 pj 的代價是 i j 要求使用最少的代價讓p變成s。單組測試資料。第一行有乙個整數n 1 n 200000 表示排列的長度。第二行有n個範圍是1到n的整數,表示排列p。每個整數只出現一次。第三行有n個範圍是1到n的整數,表示...
51 nod 1574 排列轉換 思維 貪心
1574 排列轉換 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 現在有兩個長度為n的排列p和s。要求通過交換使得p變成s。交換 pi 和 pj 的代價是 i j 要求使用最少的代價讓p變成s。input 單組測試資料。第一行有乙個整數n ...
51nod 1574 排列轉換 貪心 鴿巢原理
題意 有兩個長度為n的排列p和s。要求通過交換使得p變成s。交換 pi 和 pj 的代價是 i j 要求使用最少的代價讓p變成s。考慮兩個數字pi和pj,假如交換他們能使得pi到目標的距離減少,pj到目標的距離減少。那麼應該交換他們,這是乙個必要的操作,也是答案的下界。如果每一次都能找到這樣的兩個數...