P52 环状序列

Posted 远山笑你。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P52 环状序列相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>
using namespace std;
//p表示的序列是否比q表示的序列字典序小
int less(const char* s,int p,int q)
{
    int n=strlen(s);
    for(int i=0; i<n; i++)
    {
        if(s[(p+i)%n]!=s[(q+i)%n])
            return s[(p+i)%n]<s[(q+i)%n];
    }
    return 0;
}
int main()
{
    char s[100];
    scanf("%s",s);
    int l=strlen(s);
    int ans=0;//有ans记录字典序最小的位置
    for(int i=1; i<l; i++)
    {
        if(less(s,i,ans)) ans=i;
    }
    for(int i=0; i<l; i++)
    {
        printf("%c",s[(ans+i)%l]);
    }
    printf("\n");
    return 0;
}
//在字符串中实现循环用 % 。

以上是关于P52 环状序列的主要内容,如果未能解决你的问题,请参考以下文章

环状序列

环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)

环状序列(CircularSequence,ACM/ICPC Seoul 2004,UVa1584)

UVA 1584 环状序列

UVA1584环状序列 Circular Sequence

紫书例题3-6 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)