求助!拜托啦
  • 板块学术版
  • 楼主Jasonsheng
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/8/13 20:28
  • 上次更新2023/11/4 10:46:12
查看原帖
求助!拜托啦
95537
Jasonsheng楼主2021/8/13 20:28

题目描述

有 2n 个数字排成一列,这些数字的范围在 1 到 n 之间,每个数字出现恰好两次。

你可以交换任何两个相邻的数字,如果交换后相邻数字相同,它们会自动消除。其余数字会自动靠近形成新的相邻状态。如果序列缩短后靠近的数字也相同,则会自动消除。直到所有数字全部消除为止,游戏结束。

请帮忙计算一下,最少需要交换多少对数字,才能使游戏结束。

输入格式

第一行:单个正整数 n;

第二行:2n 个数字

输出格式 单个整数:表示消除序列的最少交换次数。

数据范围 对于 30% 数据,1≤n≤100;

对于 60% 数据,1≤n≤2,000;

对于 100% 数据,1≤n≤100,000。

样例数据

输入:

5

5 2 3 1 4 1 4 3 5 2

输出:

2

说明: 先交换4与1,然后交换2与5

2021/8/13 20:28
加载中...