这是一个编程竞赛的问题(已经结束)。我一直在努力解决这个问题,但找不到一个健康的方法来解决这个问题。
问题如下:
IIIT Allahabad 将于 10 月 1 日至 5 日庆祝其一年一度的科技文化嘉年华 MM12。厨师已同意为这个节日供应糖果。厨师准备了 N 盒糖果,编号从 1 到 N(每个数字恰好出现一次)。厨师对盒子的布置非常讲究。他希望按特定顺序排列盒子,但不幸的是,厨师很忙。他让你为他重新安排箱子。给定盒子的当前顺序,您必须按照指定的顺序重新排列盒子。但是有一个限制。您只能交换两个相邻的框以达到所需的顺序。输出,所需的此类相邻交换的最小数量。
输入
输入的第一行包含一个整数 T,即测试用例的数量。每个测试用例包含 3 行,第一行包含一个整数 N,框数。接下来的 2 行每行包含 N 个数字,第一行是给定的盒子顺序,第二行是所需的顺序。
输出
对于每个测试用例,输出一个整数“K”,需要最少的相邻交换次数。约束:
1<=T<=10
1<=N<=10^5
例子
输入:
4
3
1 2 3
3 1 2
3
1 2 3
3 2 1
5
3 4 5 2 1
4 1 5 2 3
4
1 2 3 4
2 3 4 1
输出:
2
3
6
3
我对这个问题几乎一无所知。有人可以解释一下问题背后的逻辑!!