联谊会的游戏
描述 Description
WGSZ举办了一次联谊会,有N个男生和N个女生参加.这次的联谊会安排了一个小节目,好让每个加者都可以找到心仪的对象,小节目的流程如下:
1.每个参加者都有一个编号,且保证一个号码有且仅出现2次,代表一个男生和一个女生拥有相同的编号.这2N个参赛者拿到自己的号码后就会顺序进入一个队列.该队列将在输入之中给出.
2.每个人都要去找跟自己编号相同的异性,但是找的时候每次只能和自己的左右两边的人交换位置.例如:1 2 3 1 2 3这样一个队列,处在第4号的编号为1的人只能和他左边的第三号位的人交换或者和第五号位的交换位置.不可跨越换位
3.如果一个人找到了和自己编号相同的异性,那么这两个人就高高兴兴的去舞池跳舞去了,此时这两人会迅速离队,后面的人会填充这时空缺的位置.
由于人数众多,主办方希望总交换位置的次数尽量小,所以,主办方找到了你,希望你能帮他解决这个问题.
输入格式 InputFormat
第一行:1个数 N 表示一共有N个编号 2N个人参加
以下2*N行:每行一个数 代表处于第i号的人的编号
输出格式 OutputFormat
第一行:最少的交换次数.
样例输入:
3
1
2
3
1
2
3
样例输出 SampleOutput:
3
数据范围和注释 Hint
首先队列是 1 2 3 1 2 3
第一次交换 1 2 3 2 1 3
第二次交换 1 3 2 2 1 3
此时可以消去 1 3 1 3
第三次交换 1 1 3 3
此时可以消去 3 3
此时可以消去 //
所以最少交换次数为3
数据规模:
10%的数据 N<=5
30%的数据 N<=10 且保证答案在10以内
60%的数据 N<=100
100%的数据 N<=50000 且保证答案在maxlongint范围以内
时间限制 TimeLimitation
1s
这个题目大家做下。
WGSZ举办了一次联谊会,有N个男生和N个女生参加.这次的联谊会安排了一个小节目,好让每个加者都可以找到心仪的对象,小节目的流程如下:
1.每个参加者都有一个编号,且保证一个号码有且仅出现2次,代表一个男生和一个女生拥有相同的编号.这2N个参赛者拿到自己的号码后就会顺序进入一个队列.该队列将在输入之中给出.
2.每个人都要去找跟自己编号相同的异性,但是找的时候每次只能和自己的左右两边的人交换位置.例如:1 2 3 1 2 3这样一个队列,处在第4号的编号为1的人只能和他左边的第三号位的人交换或者和第五号位的交换位置.不可跨越换位
3.如果一个人找到了和自己编号相同的异性,那么这两个人就高高兴兴的去舞池跳舞去了,此时这两人会迅速离队,后面的人会填充这时空缺的位置.
由于人数众多,主办方希望总交换位置的次数尽量小,所以,主办方找到了你,希望你能帮他解决这个问题.
输入格式 InputFormat
第一行:1个数 N 表示一共有N个编号 2N个人参加
以下2*N行:每行一个数 代表处于第i号的人的编号
输出格式 OutputFormat
第一行:最少的交换次数.
样例输入:
3
1
2
3
1
2
3
样例输出 SampleOutput:
3
数据范围和注释 Hint
首先队列是 1 2 3 1 2 3
第一次交换 1 2 3 2 1 3
第二次交换 1 3 2 2 1 3
此时可以消去 1 3 1 3
第三次交换 1 1 3 3
此时可以消去 3 3
此时可以消去 //
所以最少交换次数为3
数据规模:
10%的数据 N<=5
30%的数据 N<=10 且保证答案在10以内
60%的数据 N<=100
100%的数据 N<=50000 且保证答案在maxlongint范围以内
时间限制 TimeLimitation
1s