Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >环状序列

环状序列

作者头像
谙忆
发布于 2022-11-25 00:28:34
发布于 2022-11-25 00:28:34
18200
代码可运行
举报
文章被收录于专栏:程序编程之旅程序编程之旅
运行总次数:0
代码可运行

长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。 求字典序最小的,也就是最小表示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <string.h>
#define maxn 105
int less(char *s,int p,int q)
{
   int i,n;
   n=strlen(s);
   for(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()
{
   int T ;
   char s[maxn];
   scanf("%d",&T);
   while(T--)
   {
      scanf("%s",s);
      int ans=0;
      int n=strlen(s);
      int i;
      for(i=0;i<n;i++)
      {
         if(less(s,i,ans)) ans=i;
         //不断更新ans
      }
      for(i=0;i<n;i++)
         putchar(s[(ans+i)%n]);
         putchar('\n');
   }
   return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
环状序列
输入一个长度为n(n<=100)的环状DNA串(只包含A、C、G、T这4中字符)的一种表示法,
Vincent-yuan
2020/05/26
4680
环状序列(UVa1584)
题目:长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。在这些序列中,字典序最小的称为“最小表示法”。 要求:输入一个长度为n的环状DNA串的一种表示法,你的任务是输出最小表示法。 思路:就像求n个元素中的最小值一样,用变量ans来表示目前为止,字典序最小串在输入串中的起始位置,然后不断更新ans。
杨鹏伟
2022/05/05
1270
ACM / ICPC 2018亚洲区预选赛北京赛站网络赛 3题签到
选择一个城市开始,必须按照顺时针遍历完所有城市,第一次到这个城市获得ai经费,到下一个城市的代价是bi
用户2965768
2018/09/29
4730
codeforces 339A.Helpful Maths B.Xenia and Ringroad 两水题
B.题意,有n个房子顺时针排成一圈,标号从1到n,只能顺时针走,要按次序到达规定的位置,从一个房子到旁边的房子需要1单位的时间,求总共要多长时间(注意要用64位整形)
xindoo
2021/01/21
3100
HDU 2011 菜鸟杯
A:该题写了很久,一直TLE,主要是枚举到n/2时间复杂度实在太高了,其实嘛,这道题就是因式分解,所以就是i*i=n,也就是sqrt(n) #include<stdio.h> #include<math.h> int main() { int n,T,i; int a,b; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=sqrt(1.0*n); i>=1; i--)
用户1624346
2018/04/17
6030
Codeforces Global Round 15 (A-F)
有一个字符串,可以选择任意个字符任意调换他们的位置,求选择最少数量的字符调换他们的位置使得调换后字符串按字典序排列。
Here_SDUT
2022/08/11
3360
Codeforces Global Round 15 (A-F)
POJ A Knight's Journey
题意:给你一定的格子的棋盘,一匹马是否可以遍历完全整个棋盘 1 #include<stdio.h> 2 #include<string.h> 3 const int MAXN=30; 4 5 //国际象棋纵是数字,横是英文 6 struct Node//用于最后字典序输出 7 { 8 int x,y; 9 }node[MAXN]; 10 11 int t1[]={-1,1,-2,2,-2,2,-1,1}; 12 int t2[]={-2,-2,-1,-1,1,1,2,2}; 1
用户1624346
2018/04/11
5120
UVALive 6933 Virus synthesis(回文树)
Viruses are usually bad for your health. How about ghting them with... other viruses? In this proble
ShenduCC
2018/04/27
6550
动态规划集合
动态规划,少说也做了,30 40道了但是感觉还是没有入门,接下来一星期将重新做动态规划,hdu入门的,uva入门的,外加poj的,把动态规划都重新学一下 01背包知识点  1.Robberies (hdu2955)  (01背包变形) 第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和… 实际上可以将其转化为安全的概率,则两个概率相乘,就是两次抢劫的安全概率了。     正确的方程是:f[j]=max(dp[j],dp[j-
用户1624346
2018/04/17
1.1K0
HDU 4605 Magic Ball Game(可持续化线段树,树状数组,离散化)
Magic Ball Game Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2489    Accepted Submission(s): 759 Problem Description When the magic ball game turns up, Kimi immediately falls in it. The inter
ShenduCC
2018/04/27
6660
HDUOJ---1867 A + B for you again
A + B for you again Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3432    Accepted Submission(s): 869 Problem Description Generally speaking, there are a lot of problems about strings processing.
Gxjun
2018/03/22
6160
快乐AC三道题---第一周
我们要解决的无非是是否把下一个元素加入,是否开始维护一个新的子段。我们开一个数组b[] , 记录b[i],表示以a[i]结尾的全部子段中 最大的那个的 和。 这样我们就可以根据它b[i] 的正负,去考虑是否把下一个元素加入到当前的子段。 如果b[i] 是负数,那么我们为什不从a[i+1]新维护一个子段呢? 如果b[i] 是正数,那么显然可以继续把a[i+1] 加入到当前的子段。最后我们只需要找出所有最大子段中,最大的那个。
杨鹏伟
2020/09/11
3680
学会 SAM,做完这几道题目就足够了
上周我们讲解了 sam 的基本原理,这一周,我们将把目光转向他的应用,主要通过题目讲解。
ACM算法日常
2021/09/07
4540
HDU 5877 2016大连网络赛 Weak Pair(树状数组,线段树,动态开点,启发式合并,可持久化线段树)
Weak Pair Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1468    Accepted Submission(s): 472 Problem Description You are given a  tree of  nodes, labeled from 1 to . To the th node a non-n
ShenduCC
2018/04/27
7190
字符串-后缀树和后缀数组详解
首先理解后缀的概念,后缀(suffix)即从某个位置开始到末尾的一个子串。例如字符串 ,它的五个后缀为 、 、 、 、 。
唔仄lo咚锵
2021/12/31
5.3K0
字符串-后缀树和后缀数组详解
CodeForces 832B Petya and Exam
B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem easy to Petya, but h
ShenduCC
2018/04/27
6550
pta 习题集5-6 堆栈操作合法性
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。 输入格式: 输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。 输出格式: 对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如
ShenduCC
2018/04/27
1.8K0
ECJTUACM16 Winter vacation training #4 题解&源码
https://vjudge.net/contest/149692#overview 这周一VJ比赛,题解&源码已完成! A......................................................................................... 题目链接→Codeforces Problem 712A Memory and Crow 【题意】 有n个数b1, b2, ..., bn a1, a2, ..., an是通过等式ai = bi - bi +
Angel_Kitty
2018/04/08
6520
Edu Codeforces 103 (div2)
给你n, k,让你找n个数,这n个数的和可以被k整除,求这n个数中最大值的最小值。
Here_SDUT
2022/08/08
9010
HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
Jam's problem again Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 640    Accepted Submission(s): 210 Problem Description Jam like to solve the problem which on the 3D-axis,given  points  If
ShenduCC
2018/04/27
1.1K0
相关推荐
环状序列
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验