NKOJ 3937 为何奶牛要穿过马路1 (树状数组)

博客讲述了如何使用树状数组解决NKOJ 3937题目的问题,即如何通过循环移位奶牛牛棚的位置来最小化奶牛穿马路时的线路交叉,从而减少碰撞事故。文章提供了输入输出格式,样例输入输出,以及利用树状数组计算逆序对的方法来找到最少交叉数的思路和解决方案。
摘要由CSDN通过智能技术生成

P3937为何奶牛要穿过马路1

问题描述

有一条笔直道路穿过约翰的农场。
道路的一侧有N个牛棚,编号1到N的N头奶牛分布在这N个牛棚里,每个牛棚只有一头牛。
道路的另一侧也有N个牛棚,编号1到N的N头奶牛分布在这N个牛棚里,每个牛棚只有一头牛。
相同编号的奶牛经常穿过马路互相拜访,由于奶牛们穿非常频发地穿马路,导致奶牛们经常相撞(线路交叉导致)。约翰想重新布置一下牛棚,减少碰撞事故。
约翰打算采取“循环移位”的方式布置牛棚。所谓循环移位是指,比如道路一侧有7个牛棚,里面居住的奶牛编号分别是3、7、1、2、5、4、6,如果约翰打算将牛棚往右移动2个位置,那么移位后,新的顺序是4、6、3、7、1、2、5。只能移动其中一侧的牛棚。。
请你帮约翰计算一下,怎样移动才能使得奶牛将相互访问的交叉线路最少,输出这个最少交叉数。

输入格式

第一行,一个整数N(1≤N≤100,000)
接下来N行,每行一个整数,按从左往右的顺序给出了道路一侧奶牛的分布情况。
接下来N行,每行一个整数,按从左往右的顺序给出了道路另一侧奶牛的分布情况。

输出格式

一个整数,表示所求最少交叉线路数。

样例输入 1

5
5
4
1
3
2
1
3
2
5
4

样例输出 1

0

样例输入 2

7
1
3
5
7
2
4
6
1
2
3
4
5
6
7

样例输出 2

6


只能转一边,那么显然分开讨论。
假设转上面的序列。
令上面的序列为 A ,下面的为

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值