zoukankan      html  css  js  c++  java
  • Reorder the Books(规律)

    Reorder the Books

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 179    Accepted Submission(s): 125


    Problem Description
    dxy has a collection of a series of books called "The Stories of SDOI",There are n(n19) books in this series.Every book has a number from 1 to n.

    dxy puts these books in a book stack with the order of their numbers increasing from top to bottom. dxy takes great care of these books and no one is allowed to touch them.

    One day Evensgn visited dxy's home, because dxy was dating with his girlfriend, dxy let Evensgn stay at home himself. Evensgn was curious about this series of books.So he took a look at them. He found out there was a story about "Little E&Little Q". While losing himself in the story,he disrupted the order of the books.

    Knowing that dxy would be back soon,Evensgn needed to get the books ordered again.But because the books were too heavy.The only thing Evensgn could do was to take out a book from the book stack and and put it at the stack top. 

    Give you the order of the disordered books.Could you calculate the minimum steps Evensgn would use to reorder the books? If you could solve the problem for him,he will give you a signed book "The Stories of SDOI 9: The Story of Little E" as a gift.
     
    Input
    There are several testcases.

    There is an positive integer T(T30) in the first line standing for the number of testcases.

    For each testcase, there is an positive integer n in the first line standing for the number of books in this series.

    Followed n positive integers separated by space standing for the order of the disordered books,the ith integer stands for the ith book's number(from top to bottom).


    Hint:
    For the first testcase:Moving in the order of book3,book2,book1 ,(4,1,2,3)(3,4,1,2)(2,3,4,1)(1,2,3,4),and this is the best way to reorder the books.
    For the second testcase:It's already ordered so there is no operation needed.
     
    Output
    For each testcase,output one line for an integer standing for the minimum steps Evensgn would use to reorder the books.
     
    Sample Input
    2 4 4 1 2 3 5 1 2 3 4 5
     
    Sample Output
    3 0

     分析:每次取最大编号的书籍放在最上面,令ans=最大编号,从下往上找,如果当前编号等于最大编号,就不用抽了,编号数减一,最终编号的值就是最小步数;

    代码:

     1 #include<stdio.h>
     2 int main(){
     3     int T,N,ans,m[20];
     4     scanf("%d",&T);
     5     while(T--){
     6         scanf("%d",&N);
     7         for(int i=1;i<=N;i++)scanf("%d",m+i);
     8         ans=N;
     9         for(int i=N;i;i--){
    10             if(ans==m[i])ans--;
    11         }
    12         printf("%d
    ",ans);
    13     }
    14     return 0;
    15 }
  • 相关阅读:
    计算机程序的构造和解释
    StackOverflow之旅<1>------{去掉烦人的"!=null"判断}
    tomcat 启动显示指定的服务未安装
    Sql Server 表的复制
    Sql Server配置管理器与 Sql Server Management Studio
    “因为数据库正在使用,所以无法获得对数据库的独占访问权。”处理
    Win10磁贴 横向排列 增加多行 多列 磁贴横向展示
    解决使用Hyper-v 设置虚拟机网卡出现-从网络文件夹中隐藏
    Hyper-V网络设置(物理机+虚拟机)
    易语言等软件自动获取管理员权限,在64位Windows7系统非管理员帐户中执行
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4868811.html
Copyright © 2011-2022 走看看