#include <stdio.h>
#include <string.h>
#define maxn 105 int lss(const char *s,int p,int q)
{
int i, stlen=strlen(s);
for(i=0; i<stlen; i++)
if(s[(p+i)%stlen] != s[(q+i)%stlen])
return s[(p+i)%stlen] < s[(q+i)%stlen];
return 0;
}
int main(void)
{
int n,ans,stlen,i;
char carr[maxn];
scanf("%d",&n);
while(n--)
{
ans=0;
scanf("%s",carr);
stlen=strlen(carr);
for(i=1; i<stlen; i++)
if(lss(carr,i,ans))ans=i;
for(i=0; i<stlen; i++)
putchar(carr[(i+ans)%stlen]);
putchar('\n');
}
return 0;
}

  

求字典序的“最小表示”。

ans表示最小下标,初始值为0,for循环,从1开始循环,依次比较前一个和后一个

第一次 ans=0.i=1,即比较从0开始的字符串与从1开始的字符串那个字典序小,

如果 lss(s,i,ans)则ans=i; //lss()函数返回是否后一个比前一个小,如果小,则将后一个坐标即i赋值给ans,使得ans 一直记录最小的字典序的开始下标。

思路:

找最小字典序,即从开始至最后依次比较,将其字串看成一个环,其下标%其字串长度即可进行循环

ACAB

ACAB 比较 CABA

0123        123[0(4%4)]

在主函数中循环,依次比较,利用自己写的函数(后一个小于前一个),则记录后一个下标。最后记录的是最小字典序的开始下标,然后输出即可

Circular Sequence,ACM/ICPC Seoul 2004,UVa 1584的更多相关文章

  1. 生成元(Digit Generator ,ACM/ICPC Seoul 2005 ,UVa 1583)

    生成元:如果 x 加上 x 各个数字之和得到y,则说x是y的生成元. n(1<=n<=100000),求最小生成元,无解输出0. 例如:n=216 , 解是:198 198+1+9+8=2 ...

  2. [C++]环状序列(CircularSequence,ACM/ICPC Seoul 2004,UVa1584)

    Question 例题3-5 环状序列(CircularSequence,ACM/ICPC Seoul 2004,UVa1584) 长度为n的环状串有n种表示方法,分别为从某个位置开始顺时针得到,在这 ...

  3. 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586)

    习题 3-3 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586) 给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N, ...

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

    长度为n的环状串有n种表示法,分别为从某 个位置开始顺时针得到.例如,图3-4的环状串 有10种表示: CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等. 在这些表示法中,字典序最小 ...

  5. 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)

    解题思路: 1.将分子量用double 数组记录下来 2.将字符串存储在字符数组中,从头向后扫描,一直记住“字母”,对下一个字符进行判断,是否是数字,如果是数字:用一个整数记录,本代码中用的sum,同 ...

  6. 弱键(Weak Key, ACM/ICPC Seoul 2004, UVa1618)

    I think: 给出k(4≤k≤5000)个互不相同的整数组成的序列Ni,判断是否存在4个整数Np.Nq.Nr和Ns(1≤p<q<r<s≤k),使得Nq>Ns>Np&g ...

  7. 生成元(Digit Generator,ACM/ICPC Seoul 2005,UVa 1583)

    #include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int t, n, a, ...

  8. 得分(Score,ACM/ICPC Seoul 2005,UVa 1585)

    #include<stdio.h> int main(void) { char b; int t,cou,sum; scanf("%d",&t); getcha ...

  9. 得分(Score, ACM/ICPC Seoul 2005,UVa 1585)

    #include<cstdio>#include<cstdlib>#include<cstring>int main(){ char s[80];//输入OOXXO ...

随机推荐

  1. Socket Programming in C#--Introduction

    This is the second part of the previous article about the socket programming. In the earlier article ...

  2. wireshark添加ip.id字段

    wireshark添加ip.id字段 为了在多个设备上追踪同一个数据包. 如果是同一个会话,则可以计算延迟, 如sta和应用服务器慢,这种问题,可以根据这个加上ip.id追踪数据到哪里慢了.    

  3. 那些OVER的封装

    什么over什么,如pppoe, ppp的封装都在over对象之后,入下图: PPPOE   Ipsec

  4. dos常用命令

    进入终端 首先具备一个控制台(命令行提示符窗口)用于输入dos命令: 打开一个控制台的方式: 方式一:开始-------> 所有程序--------->附件----------->命 ...

  5. [iOS翻译]Cocoa编码规范

        简介: 本文整理自Apple文档<Coding Guidelines for Cocoa>.这份文档原意是给Cocoa框架.插件及公共API开发者提供一些编码指导,实质上相当于Ap ...

  6. Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use

    今天在别人的服务器上登录mysql发现无法登陆(Mysql别人实现安装好的) 密码和用户名都是正确的,但登录后报如下错误: ERROR 1045 (28000): Access denied for ...

  7. [CareerCup] 10.1 Client-facing Service 面向客户服务器

    10.1 Imagine you are building some sort of service that will be called by up to 1000 client applicat ...

  8. vim环境设置和自动对齐

    只要在 /etc/vimrc中加上这两句就行了set autoindentset smartindent------------------------------------------------ ...

  9. Orchard使用Tags(标签)组织文本

    本文链接:http://www.cnblogs.com/souther/p/4517476.html 主目录 原文链接:http://docs.orchardproject.net/Documenta ...

  10. css兼容性的问题

    https://www.douban.com/note/314793848/ 随意的一个博客ie6的兼容 这个博客比较好 http://blog.csdn.net/chuyuqing/article/ ...