zoukankan      html  css  js  c++  java
  • HDU 5500 Reorder the Books 贪心

    Reorder the Books

    Time Limit: 1 Sec  

    Memory Limit: 256 MB

    题目连接

    http://acm.hdu.edu.cn/showproblem.php?pid=5500

    Description

    dxy家收藏了一套书,这套书叫《SDOI故事集》,《SDOI故事集》有n(n≤19)n(nleq 19)n(n19)本,每本书有一个编号,从111号到nnn号。
    dxy把这些书按编号从小到大,从上往下摞成一摞。dxy对这套书极其重视,不允许任何人动这套书。
    有一天Evensgn到dxy家玩,dxy因为和妹子有约会,就让Evensgn自己待在他家。Evensgn对这套书非常好奇,偷偷的看了一下,结果发现这里面竟然有当年小E和小Q的故事。Evensgn看得出神,结果把一摞书的顺序打乱了。
    眼看着dxy就要回来了,Evensgn需要尽快把这摞书恢复到原先排好序的状态。由于每本书都非常重,所以Evensgn能做的操作只有把一本书从书堆中抽出来,然后把这本书放到书堆的顶部。
    给你打乱的书的顺序,你能帮Evensgn算算最少需要几次上述的操作,他才能把这套书恢复顺序?假如你能算出来的话,Evensgn答应送给你一本他签名的书《SDOI故事集9:小E的故事》

    Input

    输入包含多组数据。
    第一行包含一个正整数T(T≤30)T(Tleq 30)T(T30)表示数据组数。
    对于每组数据,第一行为一个正整数nnn表示这套《SDOI故事集》中有多少本书。
    接下来一行nnn个用空格分开的正整数,表示Evensgn打乱后的这摞书的书号顺序(从上往下)。

    Output

    对于每组数据,输出一行一个整数,表示Evensgn最少需要几次操作才能讲书恢复顺序。

    Sample Input

    2
    4
    4 1 2 3
    5
    1 2 3 4 5
     

    Sample Output

    3
    0

    HINT

    题意

    题解:

     倒着找,如果倒着有序的话,就不用扔上去了

    贪心

    代码:

    #include<stdio.h>
    
    int a[32];
    int main()
    {
        int t;scanf("%d",&t);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
                scanf("%d",&a[i]);
            for(int i=n;i>=1;i--)
                if(a[i]==n)
                    n--;
            printf("%d
    ",n);
        }
    }
  • 相关阅读:
    Python代写利用LSTM模型进行时间序列预测分析
    R语言代写使用K-Means聚类可视化纽约市WiFi访问
    BZOJ 4448: [Scoi2015]情报传递 DFS序+主席树
    BZOJ 2213: [Poi2011]Difference 细节题
    CF1268B Domino for Young 黑白染色
    BZOJ 3727: PA2014 Final Zadanie 树形DP
    BZOJ 4726: [POI2017]Sabota? 树形dp
    CF1137F Matches Are Not a Child's Play LCT+树状数组
    BZOJ 2238: Mst DFS序+KDtree
    CF1111C Creative Snap 线段树
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4871100.html
Copyright © 2011-2022 走看看