zoukankan      html  css  js  c++  java
  • 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>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <cmath>
     6 #include <set>
     7 #include <deque>
     8 #include <map>
     9 #include <algorithm>
    10 #include <vector>
    11 #include <iostream>
    12 #define pii pair<int,int>
    13 #define back que[rear-1]
    14 #define INF 0x7f7f7f7f
    15 #define LL long long
    16 #define ULL unsigned long long
    17 using namespace std;
    18 const double PI  = acos(-1.0);
    19 const int N=30;
    20 
    21 int n, a[N];
    22 int cal()
    23 {
    24     for(int i=n; i>0; i--)
    25         if(a[i]==n)    n--;
    26     return n;
    27 }
    28 
    29 int main()
    30 {
    31     //freopen("input.txt", "r", stdin);
    32     int t;cin>>t;
    33     while(t--)
    34     {
    35         scanf("%d",&n);
    36         for(int i=1; i<=n; i++)
    37             scanf("%d", &a[i]);
    38         cout<<cal()<<endl;
    39     }
    40     return 0;
    41 }
    AC代码
  • 相关阅读:
    Android -- 保存文件
    Android -- AsyncTask
    Java 集合
    Android -- ViewPager放入多个XML监听每个的控件
    Android -- 自定义标题栏,背景颜色填充满
    PowerShell正则表达式(一) 定义模式
    PowerShell 简单模式识别 1
    Powershell 设置数值格式 1
    PowerShell String对象方法 1
    PowerShell 字符串操作符
  • 原文地址:https://www.cnblogs.com/xcw0754/p/4868613.html
Copyright © 2011-2022 走看看