zoukankan      html  css  js  c++  java
  • 【bzoj2882】工艺 最小表示法

    【bzoj2882】工艺

    Description

    小敏和小燕是一对好朋友。
    他们正在玩一种神奇的游戏,叫Minecraft。
    他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边。
    他们想,在仅这一个操作下,最漂亮的工艺品能多漂亮。
    两个工艺品美观的比较方法是,从头开始比较,如果第i个位置上方块不一样那么谁的瑕疵度小,那么谁就更漂亮,如果一样那么继续比较第i+1个方块。如果全都一样,那么这两个工艺品就一样漂亮。

    Input

    第一行两个整数n,代表方块的数目。
    第二行n个整数,每个整数按从左到右的顺序输出方块瑕疵度的值。

    Output

    一行n个整数,代表最美观工艺品从左到右瑕疵度的值。

    Sample Input


    10
    10 9 8 7 6 5 4 3 2 1

    Sample Output


    1 10 9 8 7 6 5 4 3 2

    HINT

    【数据规模与约定】
    对于20%的数据,n<=1000
    对于40%的数据,n<=10000
    对于100%的数据,n<=300000

    题解

    输出最小表示TAT

     1 #include<cstring>
     2 #include<cmath>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<cstdio>
     6 
     7 #define N 300007
     8 using namespace std;
     9 inline int read()
    10 {
    11     int x=0,f=1;char ch=getchar();
    12     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    13     while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
    14     return x*f;
    15 }
    16 
    17 int n;
    18 int a[N];
    19 
    20 int min_express()
    21 {
    22     int i=0,j=1,k=0;
    23     while(i<n&&j<n&&k<n)
    24     {
    25         int t=a[(i+k)%n]-a[(j+k)%n];
    26         if (!t)k++;
    27         else
    28         {
    29             if (t>0)i+=k+1;
    30             else j+=k+1;
    31             if (i==j) j++;
    32             k=0;
    33         }
    34     }
    35     return min(i,j);
    36 }
    37 int main()
    38 {
    39     n=read();
    40     for (int i=0;i<n;i++)
    41         a[i]=read();
    42     int pst=min_express();
    43     for (int i=0;i<n;i++){printf("%d",a[(pst+i)%n]);if (i!=n-1)cout<<" ";}
    44 }
  • 相关阅读:
    python之闭包,装饰器
    python之函数名称空间,作用域,嵌套函数
    python之函数基础
    Python之文件操作
    Linux之系统优化配置
    VMware安装CentOS操作系统详细步骤
    拷贝、浅拷贝、深拷贝解答
    python之字符串,列表,字典,元组,集合内置方法总结
    东方超环(EAST)世界纪录
    Vue通信、传值的多种方式,详解(都是干货)
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/8286884.html
Copyright © 2011-2022 走看看