1031  Order

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 538  Solved: 67
[Submit][Status][Web Board]

Description

一天boss把新来的实习生叫到一起,让他们站成一排,并叫来了负责培训实习生的小明。

boss说:“小明,这么长时间,你应该对他们的能力有所了解了,按照他们的能力,给他们排下序吧,能力高站前面。”

小明心中已经有了一个顺序,但为了照顾人的自尊心,他是不会把人从前面拉倒后面的,只会让优秀的往前站。 比如原来的顺序是1,3,2. 小明想要的顺序是1,2,3. 最省事的方法就是让2站到3的前面了。

然而实习生人数比较多,小明想知道最少要几步才能排好序。

Input

第一行输入N( 1 <= N <= 1000),表示用例个数

每个用例两行,原来的序列,以及小明想要的序列(序列最长不超过100,每个人用1~100编号)。

Output

最少需要移动的次数

Sample Input

1
1 3 2
1 2 3

Sample Output

1

HINT

刚开始用Java实现的,这样是考虑到因为里面人数的个数是不确定的,如果C++用字符串是实现到时候还要转换成数组,而Java有专门的字符串转换函数,比较方便,整体思路就是将目标数组与原数组从第一个数开始往后比较,如果出现目标数组元素位置和原数组元素位置不对应的情况,就比较该元素在原数组中的位置相对于目标数组来说是靠前还是靠后,靠前则不移动,靠后则将其移动到目标数组中元素的当前位置,如此循环,两个数组元素位置一致,贴代码:

import java.util.Scanner;/*** Created by yun on 2016/10/20.*/
public class Main {public static int index(int n,int b[],int count){       //找出数组元素在数组中的位置for(int i=0;i<count;i++){if(b[i]==n)return i;}return n;}public static void move(int b[],int tag1,int tag2)       //将数组移动,tag1为所要移动的元素位置,tag2为要插入的位置,从后往前移动{ int a = b[tag1];for(int i=tag1;i>tag2;i--){b[i]=b[i-1];}b[tag2] =a;}public static boolean infind(int b1[],int b2[],int count)      //判断两个数组是否相等{for(int i=0;i<count;i++){if(b1[i]!=b2[i])return false;}return true;}public static void main(String []args){Scanner input = new Scanner(System.in);int q = input.nextInt();for(int i=0;i<q;i++){if(i==0){String ss = input.nextLine();        //消除回车}String s = input.nextLine();String y = input.nextLine();String [] arr1 = s.split(" ");String [] arr2 = y.split(" ");int [] a = new int[arr1.length];int [] b = new int[arr2.length];for(int j=0;j<arr1.length;j++){a[j] = Integer.parseInt(arr1[j]);b[j] = Integer.parseInt(arr2[j]);}int count = arr1.length;int countt = count;int tag1,tag2,jishu=0;for(int j=0;j<countt;j++) {for (int r = 0; r < count; r++) {tag1 = index(b[r], a, count);tag2 = r;if (tag1 > tag2) {move(a,tag1,tag2);jishu++;if (infind(a, b, count)) break;}}if (infind(a, b, count)) break;}System.out.println(jishu);}}
}

时间复杂度比较大,有同学的时间复杂度可以做到O(n),看了一下具体实现过程,相比这种,确实巧妙,不过也不想编了 TAT,

CUMT 1031 Order相关推荐

  1. 1031 Hello World for U

    1031 Hello World for U (20 分) Given any string of N (≥5) characters, you are asked to form the chara ...

  2. [Java] 1031. Hello World for U (20)-PAT甲级

    1031. Hello World for U (20) Given any string of N (>=5) characters, you are asked to form the ch ...

  3. 【SQL】cumt 数据库平台实践

    目录: 1. 修了老师"王刚"开课课程且成绩在90分以上的学生姓名.课程名称和成绩:  2. 求选修了"王刚"老师所授全部课程的学生姓名和学院名称:(姓名,学院 ...

  4. Hive中的四种排序方式(order by,sort by,distribute by,cluster by)使用与区别详解

    在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别: order by sort by distribute by clus ...

  5. 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  6. 102. Binary Tree Level Order Traversal

    题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...

  7. Mysql分页order by数据错乱重复

    公司用的是Mybatis,发现分页和排序时直接传递参数占位符用的都是 ,由于,由于,由于有SQL注入风险,要改为#,但是封装page类又麻烦,所以直接使用了 pageHelper 插件了,方便快捷,但 ...

  8. select 和 order by

    select 的优先级要高于order by,相当于是select先创建了一个临时表,再通过临时表去排序.所以,对于一些sum()的汇总,在进行排序,实际是排序的select后的字段,而不是表里的那个 ...

  9. access order by 判断是否除数为0

    order by IIF(dz>0,yj/dz,0) desc 转载于:https://www.cnblogs.com/slyzly/p/5379482.html

最新文章

  1. 【工具软件】markdown编译器待办事项无法打勾
  2. 【每日一题】剑指 Offer 10- I. 斐波那契数列
  3. php禁止伪造_php防止伪造的数据从URL提交方法
  4. jackson 反序列化string_java – 使用Jackson对数组进行反序列化
  5. LeetCode --Search Insert Position
  6. Jira 6.0.5的详细安装及汉化授权
  7. Laravel 除了首页能正常访问,其它页面均404
  8. 突破5G壁垒,睿至科技集团以技术实力赋能产业发展
  9. [转]关掉myeclipse下的checking for updates
  10. Python中的操作符重载
  11. 虚拟机centos6.5 --安装jdk
  12. 测试人员代码走查基础要点
  13. matlab 组装刚度矩阵,求整体刚度矩阵matlab程序
  14. 机器学习UCI数据库说明
  15. 英语 动词过去式和过去分词的变化规则
  16. c语言由天数求日期,C语言-由日期求天数由天数求日期
  17. 微软:拿番茄花园开刀与反垄断无关
  18. html文字往右边偏移怎么做,div向右偏移设置 css让div靠右移必定距离
  19. 计算机学的痛苦可以换专业,在大学里选错了专业,是一种怎样的“痛苦”体验?...
  20. 条件随机场CRF(三)

热门文章

  1. 自动增益控制电路(AGC)
  2. U8G2库移植到STM32平台上
  3. 鲁大师PC最新硬件排行,汇总Q1季度最强PC硬件产品!
  4. 鲍尔默最后一次员工大会:声泪俱下别微软
  5. Unity Shader - 切线空间的法线贴图应用(T2W W2T)
  6. 比尔总动员艺人职业详解
  7. wannacry 专杀_蠕虫勒索软件专杀工具
  8. Google收购摩托罗拉移动
  9. 以太网,令牌网,FDDI,ATM,WLAN的区别
  10. 安装Gearman及其PHP扩展