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

    题意:

      有一个1→n的排列形成的数列,我们要用最少的操作次数把这个数列从小到大排序,每次操作都是把一个数放到整个数列的最前面。

    思路:

           首先最大的数n是不用操作的(其他数操作好了,n自然在最后面了)。先找到数n的位置,在n之前找n-1,若没找到n-1,则n-1需要操作,所有小于n-1的数均需要操作;若找到了n-1,再接着往前依次找n-2,n-3,。。。假如数k找不到了,那就是至少需要k次操作。

    复杂度O(n)。

     1 #pragma comment(linker, "/STACK:1024000000,1024000000")
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<math.h>
     7 #include<algorithm>
     8 #include<queue>
     9 #include<set>
    10 #include<bitset>
    11 #include<map>
    12 #include<vector>
    13 #include<stdlib.h>
    14 #include <stack>
    15 using namespace std;
    16 #define PI acos(-1.0)
    17 #define max(a,b) (a) > (b) ? (a) : (b)
    18 #define min(a,b) (a) < (b) ? (a) : (b)
    19 #define ll long long
    20 #define eps 1e-10
    21 #define MOD 1000000007
    22 #define N 26
    23 #define inf 1e12
    24 int n;
    25 int a[N];
    26 int main()
    27 {
    28    int t;
    29    scanf("%d",&t);
    30    while(t--){
    31        scanf("%d",&n);
    32        for(int i=0;i<n;i++){
    33            scanf("%d",&a[i]);
    34        }
    35        int ans=n;
    36        int ed=n-1;
    37 
    38        while(ed>=0){
    39            if(a[ed]==ans) ans--;
    40            ed--;
    41        }
    42        printf("%d
    ",ans);
    43    }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    maven命令
    一个Maven项目在eclipse中正常,但在IDEA中启动时报错
    idea导入eclipse的普通web项目
    idea启动慢的解决办法
    如何在idea里切换项目不同分支
    定时任务
    springboot项目打成war包
    springboot配置信息
    Controller层方法传参和返回字符串
    [C#学习] popupControlContainer控件
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/4884622.html
Copyright © 2011-2022 走看看