hdoj 5500 Reorder the Books

Reorder the Books

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

Problem Description

dxy has a collection of a series of books called "The
Stories of SDOI",There are n(n≤19)

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(T≤30)

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

题意:一摞书顺序乱了,让你按照序号从小到大的顺序将其排列整齐,一次只能拿一本书,且必须放在最上边,问最少多少步可以实现

题解:先算出已经按顺序排好的书本的个数sum(注意这个序列并不一定连续,而且必须是从某个数到n的序列),用n减去sum即可

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAX 100100
using namespace std;
int a[MAX];
int main()
{
    int n,m,t,i,j;
    scanf("%d",&t);
    int maxx,ans;
    while(t--)
    {
        scanf("%d",&n);
        maxx=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            if(maxx<a[i])
            {
                maxx=a[i];
                ans=i;
            }
        }
        int ant=ans,sum=0;
        for(j=ans;j>=1;j--)
        {
            if(a[j]==a[ant]-1)
            {
                sum++;
                ant=j;
            }
        }
        printf("%d\n",n-sum-1);
    }
    return 0;
}

  

时间: 2024-12-20 17:01:26

hdoj 5500 Reorder the Books的相关文章

hdu 5500 Reorder the Books

http://acm.hdu.edu.cn/showproblem.php?pid=5500 Reorder the Books Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 942    Accepted Submission(s): 519 Problem Description dxy has a collection of

HDU 5500 Reorder the Books (水题)

题意: 有n本书,编号为1~n,现在书的顺序乱了,要求恢复成有序的样子,每次只能抽出其中一本并插到最前面,问最少需要多少抽几次? 思路: 如果pos[i]放的不是书i的话,则书i的右边所有的书都必须抽出来.抽出来的书必定可以回到它最终的位置上,即每本书最多抽出来1次,可以想象抽出来后直接扔掉,在剩下的书中找到一个有序,且最后一个元素为n,且等差为1的序列{...n-2,n-1,n}. 1 //#include <bits/stdc++.h> 2 #include <iostream>

Reorder the Books HDU 5500

Reorder the Books Accepts: 127 Submissions: 237 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) 问题描述 dxy家收藏了一套书,这套书叫<SDOI故事集>,<SDOI故事集>有n(n\leq 19)n(n≤19)本,每本书有一个编号,从11号到nn号. dxy把这些书按编号从小到大,从上往下摞成一摞.dxy对这套书极其

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&q

[HDOJ5500]Reorder the Books

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5500 模拟,从最大的开始找,一旦找到最大的,前面有对应顺序次大的话,那么那个次大的就不需要移动.以此类推,注意要保证他们的相对顺序. 1 #include <algorithm> 2 #include <iostream> 3 #include <iomanip> 4 #include <cstring> 5 #include <climits> 6

Reorder the Books-HDU5500

Problem Description dxy has a collection of a series of books called "The Stories of SDOI",There are n(n≤19) 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 increasin

hdoj 3820 Golden Eggs 【最小割+拆点】

题目:hdoj 3820 Golden Eggs 题意:给出一个矩阵,然后当前有三种选择,放一个金蛋,放一个银蛋,或者不放,然后给出每个格子放金蛋或者银蛋的得分,如果金蛋相邻的话每个得分要减掉cost1,银蛋相邻的话每个减去cost2得分,问最大得分多少? 分析:做这个题目推荐先做hdoj 1659 ,3657点击打开链接 ,这个题目相当于前两个的融合在加点变化. 首先我们发现和前两个题目一样要求不能相邻,否则要减去一定的值,那么我们可以确定同样要用当前点的行列和的奇偶性建图. 那么我们可以按照

HDOJ 1824 Let&#39;s go home

2sat....  队长离开时两个队员必须同时留下,两个队员中只要有人离开队长就得留下... Let's go home Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1304    Accepted Submission(s): 507 Problem Description 小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头.

hdoj 1892(二维树状数组)

Problem H Time Limit : 5000/3000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 8   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Now I am leaving hust acm. In