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
  • 相关阅读:
    在Html中使用echarts图表
    html+css模拟微信对话
    解决React 的<img >src使用require的方式图片显示不出来,展示的是[object Module]的问题
    easygui入门
    python安装easygui
    关于gcc、make和CMake的区别
    FreeRTOS使用心得。
    C/C++整数输出位不足前补0方法
    AngularJS前端分页 + PageHelper后端分页
    AngularJS常见指令
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/4884622.html
Copyright © 2011-2022 走看看