每日一题——第一期(越越的任务)

【题目描述】

越越希望争得勇敢头衔。国王知道骑士不仅勇敢,还需要足够聪明。所以他要求越越解决以下任务。
给定一个由1到2n的数字组成的排列p。你可以进行两种类型的操作。
▪ 交换p1和p2,p3和p4, …, P2n-1和p2n。
▪交换p1和Pn+1,p2和pn+2,…,Pn和p2n。
任务是找出对给定排列进行排序所需的最少操作次数。
你想争得勇士的头衔吗?你也来试试吧。


【输入描述】

第一行包含整数n(1≤n≤1000)。
第二行包含2n个整数,即从1到2n的数字排列,表示p。
 

【输出描述】

打印一个整数,表示对排列进行排序所需的最少操作次数。
如果使用这些操作无法对排列进行排序,则打印-1。
 

【样例1】

【样例输入】

3
6 3 2 5 4 1
 

【样例输出】

3

【样例解释】

在第一个示例中,你可以通过三个操作将排列排序:

进行操作 11:3,6,5,2,1,43,6,5,2,1,4。

进行操作 22:2,1,4,3,6,52,1,4,3,6,5。

进行操作 11:1,2,3,4,5,61,2,3,4,5,6。

【样例2】

【样例输入】

2
3 4 2 1

【样例输出】

-1

【样例3】

【样例输入】

4
1 2 3 4 5 6 7 8

【样例输出】

0

【数据范围及描述】

对于 20%的数据:1≤n≤10;

对于 100%的数据:1≤n≤1000;

【大数据】

ex_task1.in  ex_task1.out  ex_task2.in  ex_task2.out  ex_task3.in  ex_task3.out  ex_task4.in  ex_task4.out  

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值