我的代码(vjudge AC):

//Circular Sequence
#include <stdio.h>
#include <string.h>
bool less(const char* s,int p,int q){//p表示法是否比q表示法字典序小 C T C CCTCCint n=strlen(s)/2;//是原字符串的长度 for(int i=0;i<n;i++){if(s[p+i]>s[q+i]) return false;if(s[p+i]<s[q+i]) return true; }    return true;
}
int main(){char q[300],s[300]; int T;scanf("%d",&T);while(T--){memset(q,0,sizeof(q));scanf("%s",q);int len=strlen(q);strcpy(s,q);strcat(q,q);//倍长q //搜索字典序最小,不断更新起始标记int ans=0;for(int i=1;i<len;i++){if(less(q,i,ans)) ans=i;}for(int i=0;i<len;i++)printf("%c",q[ans+i]);printf("\n");}return 0;
}

刘汝佳的代码:

思路上最大的区别就是,我倍长了序列,而他直接使用了s[(p+i)%n]。
直接用序号mod序列长度n,就可以模拟环状序列了。

大神的代码总有一些很赞的小细节。
一、less()中比较新串和旧串每一位时:

for(int i=0;i<n;i++){if(s[p+i]!=s[q+i]) return s[p+i]>s[q+i]; }

更清晰。
这个部分(定义什么叫字典序更小的时候)我出了一些问题,因为字典序不止比较元素的大小,还比较元素的位置,因此很关键的东西是**“一 出现,就……”**
一出现大的,字典序就大。
一出现小的,字典序就小。

字典序一般定义:
对于两个字符串,从第一个字符开始比较,当某一个位置的字符不同时,该位置字符较小的串,字典序较小
(例如abc比bcd小)
前几位都相同,较短的字符串字典序较小
(例如hi比history小)

求最小值
在n个元素中,不断更新最小值

例题3-6 环状序列(Circular Sequence)相关推荐

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

    长度为n的环状串有n种表示法,分别为某个位置开始顺时针得到.CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等.在这些表示法中,字典序最小的称为"最小表示".输入一 ...

  2. Circular Sequence UVA - 1584

    原题及翻译 Some DNA sequences exist in circular forms as in the following figure, which shows a circular ...

  3. UVa1584 - Circular Sequence

    //UVa1584 - Circular Sequence //题目:给你一个环状串,输出它以某一位置为起点时得到最小字典序的串. //分析:从初位置到末位置每次更新字典序较小的起始位置 #inclu ...

  4. UVA1584 ​​​​​​​Circular Sequence【字符串】

    Circular Sequence UVA - 1584 题目传送门 题目大意:输入一个环形字符串,需输出其最小字典序的形式的字符串. AC代码: #include <cstdio> #i ...

  5. 1584 - Circular Sequence

    Circular Sequence Some DNA sequences exist in circular forms as in the following figure, which shows ...

  6. 算法竞赛——给定ATCG的DNA环状序列,求解最小表示字典序(附python代码及时间复杂度解析)

    题目:环状序列表示一般都会有很多种,比如一个环'CCTC',它的表示方法可能会有很多种,比如,CCTC,CTCC,TCCC,CCCT.这几种表示中,找出字典序最小的表示序列.(字符串只由A.T.G.C ...

  7. 【UVA/Codeforces】1584 Circular Sequence / 792B Counting-out Rhyme(就是一个圈儿...)

    https://vjudge.net/problem/UVA-1584 1584 Circular Sequence 输入一个字符串,可以以字符串中任意一个字母作为起始,输出字典序最小的那个字符串 两 ...

  8. Oracle中序列(Sequence)详解

    Oracle中序列(Sequence)详解 一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用 ...

  9. 算法竞赛入门经典(第二版) | 程序3-10 生成元 (UVa1584,Circular Sequence)

    题目概述: 长度为n的环状串有n种表示法, 字典序最小的称为最小表示.输入一个长度为n(n<100)的环状字符串的一种表示方法,输出最小表示 . 如:CTCC 为环状字符串的一种表示方法,它的所 ...

最新文章

  1. Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析
  2. 图像编程魔法门(By C#) 目录
  3. android 之 Activity管理与Intent的六大属性
  4. QT的QQmlScriptString类的使用
  5. load和initialize
  6. Eclipse引入外部Jar在发布时没有自动带入,导致出现ClassNoFound错误
  7. 启动postgres
  8. 多态(继承父类的非静态重写方法)
  9. c语言逆波兰计算器程序,C语言实现的简单的逆波兰计算器
  10. android 屏幕坐标色彩,Android自定义View实现颜色选取器
  11. php pdo 预处理删除,PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理
  12. c语言学习-在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出
  13. mangle 打标签冲突
  14. 百度运维部电子竞技大赛!
  15. Kite的学习历程SpringCloud之Seata安装
  16. AD不显示封装3D模型
  17. ka电器表示什么意思_电路中FU、KM、KA、KT、KV、SA、FR和SB分别是什么电器元件的文字符号?...
  18. java-net-php-python-jspm网上订餐系统查重PPT计算机毕业设计程序
  19. 厦门大学计算机研究生2020专业目录,报录比|厦门大学各院系专业2020年硕士生报考录取数据统计表...
  20. Python如何换pip的源(阿里云或清华云等源)

热门文章

  1. 杰理之AD14N系列程序获取复位源与唤醒源接口介绍【篇】
  2. 零基础转行,入职军工类测试方向,月薪10K | 既然选择了,就要全力以赴
  3. 【清华牛人】Stanford, Caltech双料博士
  4. iOS证书申请打包上传App Store审核完整流程(7个步骤)
  5. 2020年2月编程语言排行榜:Java第一,Python出现下滑!
  6. FPGA:zcu102学习笔记(参考自xing见博客)
  7. 什么是特斯拉?他和爱迪生相爱相杀。
  8. ABAP:BAPI_INCOMINGINVOICE_PARK 通过PO采购单创建预制发票MIRO
  9. docker pytorch-cuda 安装 devel 版本
  10. 【无人机】基于蒙特卡洛算法实现无人机任务分配模型附matlab代码