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)
紫书例题3-6 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)