洛谷-P1966 火柴排队(归并排序or树状数组求逆序对进阶+离散化)
题目链接
题意:
给你两个数组,相邻两个数字之间可以互换位置,求交换位置至少多少次后可以使得∑(ai-b)^2最小。
思路:
离散化a[i]与b[i]数组后开一个c[i]数组令c[a[i]]=b[i],求c[i]数组的逆序对个数即可。
代码:
树状数组代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);co
原创
2020-06-09 21:29:27 ·
185 阅读 ·
0 评论