数学联邦政治世界观
超小超大

数学(五)

思路:先把第一个序列排序,第二个序列的顺序不定。

对第一个序列交换得到递增序列,此时所有逆序对数量都来自于第二个序列,现在对某对元素{i,j}操作,使其顺序改变后,第一个序列一定会增加k个逆序对,但是第二个序列减少逆序对一定<=k,得不偿失了,所以只需要对一个序列排序即可。

证明:为简化运算,我们将排序移动过程全部变为相邻项交换。

当第一个序列为严格递增序列时,第二个序列想要减少逆序对数量时,每项不在原有位置上的元素都要移动相应距离,在移动过程中每与相邻项交换一次,第一个序列逆序对一定减1,但是第二个逆序对数量最多减少1。

举个例子:

第二个序列为3 4 1 2,想要元素3回到它应在的位置上,需要交换两次,当元素3,4交换时,逆序对数量不减反增,第一个序列逆序对加1,以此类推。

#include<iostream>

#include<cstring>

#include<vector>

using namespace std;

using LL = long long;

int main(){

cin.tie(0);

cout.tie(0);

ios::sync_with_stdio(0);

int T;

cin>>T;

while(T--){

int n;

cin>>n;

vector<int> a(n), b(n);

for(int i = 0; i<n; i++) cin>>a[i];

for(int i = 0; i<n; i++) cin>>b[i];

vector<int> id(n);

for(int i = 0; i<n; i++) id[i] = i;

sort(id.begin(), id.end(), [&](int x, int y){

return a[x]<a[y];

});

for(int i = 0; i < n; i++){

cout << a[id[i]] << ' ';

}

cout << '\n';

for(int i = 0; i < n; i++){

cout << b[id[i]] << ' ';

}

cout << '\n';

}

}

数学联邦政治世界观提示您:看后求收藏(笔尖小说网http://www.bjxsw.cc),接着再看更方便。

相关小说

极狱——重生之光 连载中
极狱——重生之光
桉姸
剧情跟随故事发展而来
0.7万字8个月前
魔神对决 连载中
魔神对决
191***612
为了战胜邪恶势力,叶寻与千颜克服重重困难去寻找上古神兽,只为最终一战,给世界一个和平。
10.3万字8个月前
只为一个明天的人们 连载中
只为一个明天的人们
墨雨岚溪
在一段荒唐而遥远的历史中,西煌帝国统治着几乎整个大陆。表面上,其疆域广袤无垠,城镇繁华喧嚣,商队往来不绝,欢声笑语不断。然而,实则内部腐败不......
0.5万字6个月前
深妖姬之三面妲己 连载中
深妖姬之三面妲己
都值得我前进
婠音妲曦,她是被三面妲己重生转世后尚未形成人形的一只九尾狐女妖的妖体给附体的一位銀朝邻国婠音国公主
0.1万字4个月前
觉醒后我和女鬼杀疯了 连载中
觉醒后我和女鬼杀疯了
片儿鱼
言清欢and言宜愉『实力爆表大佬鬼and智勇双全大美人』双女主,文笔差————————言宜愉是个初中生她原以为三年就这么过去了直到…学校操场......
1.5万字4个月前
被全帝国宠上天的omega 连载中
被全帝国宠上天的omega
轩清淼
不善言辞为爱疯批强悍冷面战神A特兰迪x害羞内向软糯可爱为爱牺牲团宠O王一愽满心的爱恋却只被爱人当做度过易感期的工具人!永远比不上心上人的白月......
2.4万字2个月前