1550: AA

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 88  Solved: 26
[Submit][Status][Web Board]

Description

其实第一次听说要出题目我是拒绝的,因为,你不能让我出,我就马上去出,我要试一下,因为我不愿意出完了以后再加一些案例上去,然后题目duang的一下就被AC了。现在要求对字符串进行环状左移操作,每次向左移动一个位置。例如:对duang进行操作,得到的全部字符串为:

duang

uangd

angdu

ngdua

gduan

输出得到最小字典序的字符串的最小移动次数。

Input

输入一个数T(1<=T<=100),表示接下来有T行字符串;输入字符串S,S的长度为L(5<=l<=100000)。

Output

输出一个数字,表示为得到最小字典序的字符串的最小移动次数。

Sample Input

2
baabaa
alabala

Sample Output

1
6
【解析】
这道题我提交了好多次都是超时...但是呢我觉得做题目嘛主要是学东西..我是用map,结构体还有用刘汝佳老师书上的方法也试了一下还是超时...此处附上我的超时代码...其实有的时候我们不能真的为了AC而去AC。还可以直接比较..还有就是当我们用map<string,int>的时候是按照string的最小字典序来排列的所以我们也可以用map

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<map>
#include<cstring>
using namespace std;
struct E
{string zi;//结构体存储int b;
};
bool cmp(E a,E b)
{return (a.zi).compare(b.zi)<0;//两个字符串进行比较,字典序小的排在前面
}
int main()
{int t,n,i,j,k,p;string s,s1;scanf("%d",&t);while(t--){p=0;E f[100010];cin>>s;f[p].zi=s;f[p].b=0;n=s.size();for(i=1;i<=n;i++){string s1;for(j=i;j<n;j++){s1+=s[j];}for(k=0;k<i;k++){s1=s1+s[k];//获取移动的字符串}p++;f[p].zi=s1;f[p].b=i;}sort(f,f+p,cmp);//根据字典序来排序cout<<f[0].b<<endl;}return 0;
}
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<map>
#include<cstring>
using namespace std;
int main()
{int t,n,i,k;string s,s1,s3;scanf("%d",&t);while(t--){cin>>s;s3=s;k=0;n=s.size();for(i=1;i<=n;i++){string s1,s2;s1=s.substr(i,n-i);s2=s.substr(0,i);s1=s1+s2;if(s3.compare(s1)>0)//此函数用来比较字典序{s3=s1;k=i;}}printf("%d\n",k);}return 0;
}
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<map>
#include<cstring>
using namespace std;
map<string,int>a;
int main()
{int t,n,i;string s,s1;scanf("%d",&t);while(t--){a.clear();cin>>s;a[s]=0;n=s.size();for(i=1;i<=n;i++){string s1,s2;s1=s.substr(i,n-i);s2=s.substr(0,i);//获取字符串从0开始取i个s1=s1+s2;if(a[s1]==0)a[s1]=i;}map<string,int>::iterator it=a.begin();//map<string,int>是按照最小字典序来排列的cout<<it->second<<endl;}return 0;
}
#include<stdio.h>
#include<string.h>
#define maxn 100010
int less(char s[],int p,int q)
{int n=strlen(s);int i;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,ans,n,i;char s[maxn];scanf("%d",&t);while(t--){scanf("%s",s);ans=0;n=strlen(s);for(i=1;i<n;i++){if(less(s,i,ans))ans=i;}printf("%d\n",ans);}return 0;
}

ZCMU-1550-AA相关推荐

  1. zcmu1550(字符串最小表示法)

    1550: AA Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 125  Solved: 35 [Submit][Status][Web Board] ...

  2. 这就是我为什么推荐使用var aa = for (var i = 0, l = aa.length; i < l; i++) {var a = aa[i];}循环的原因,每秒最快可以执行4000+次!

    //很长一段时间我都只使用以下方式做数组循环,具体原因看数据 var aa = for (var i = 0, l = aa.length; i < l; i++) { var a = aa[i ...

  3. a和a数值大小 计算机,Java求s=a+aa+aaa+aaaa+aa...a的值

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有 ...

  4. aa bb ccc java,TinyTemplate(Velocity Plus版)即将火热推出~~~

    原本是没有本身写一个模板引擎的计划的,由于按个人理解,一直认识这种"语言"级的引擎,难度是很是大的.总感受本身的水平不够,所以不敢有这个念头.直到大量使用Velocty的时候,碰到 ...

  5. ACMNO.9求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入。 输入 n 输出 a=2 时

    题目描述 求Sn=a+aa+aaa+-+aa-aaa(有n个a)之值,其中a是一个数字. 例如:2+22+222+2222+22222(n=5),n由键盘输入. 输入 n 输出 a=2 时的Sn 样例 ...

  6. 你听过BA、DA、AA、TA么?全网疯传的架构实践全景图!

    业务架构是跨系统的业务架构蓝图,应用架构.数据架构.技术架构是解决方案的不同方面. 多年来,全球业界已在业务架构.应用架构.数据架构.技术架构方面积累了大量经验. 近几年,数字化转型呼唤"懂 ...

  7. MSSQL2008R2 Failover Cluster(A-A)配置实验

    1:准备环境 本机电脑:双核.12G.500G硬盘() 实验工具:VM 系统:windows 2008 R2 Enterprisesp1(x64)(中文系统 & 英文系统) DB:MSSQL ...

  8. 语音网关上AA的配置解析

    配置AA的方法有多种,这里介绍在CISCO2811语音网关上配置的内容 application   service aa flash:its-CISCO.2.0.1.0.tcl //调用TCL脚本,定 ...

  9. 试求由a,b,c三个字母组成的n位符号串中不出现aa图像的符号串的数目

    1.错误解法 共3^n,含aa的共3^(n-2),那么相减8*3^(n-2). 分析:aa的左右两边不能是a,所以结果肯定大了. 2.正确解法 假设符合条件的符合串的数目为,考虑第1位数的数值,有两种 ...

最新文章

  1. linux 安装redis4.0.6,Redis(4.0.6)在Linux(CentOS7)下的安装
  2. VS2008环境下CEGUI 0.7.1及相关工具的编译(转载 + 额外的注意事项)
  3. hdu 4639 2013多校第四场 hehe Fibonacci 数列,组合计数,字符串处理
  4. python绘图内容怎么保存_将绘图保存到图像文件,而不是使用Matplotlib显示 - python...
  5. linux下编译安装gcc,Linux编译安装GCC 5.1.0
  6. [导入] 堆和栈的区别
  7. 打开php.ini中的Safe_mode,会影响哪些函数?
  8. 【转】DPDK(一):专业术语
  9. MySQL · BUG分析 · Rename table 死锁分析
  10. centos安装中文支持(转)
  11. 线切割计算机传输出错,为什么线切割单板机总传不了或出错?解开传送数据之迷...
  12. 黑莓手机刷linux,【教程】黑莓手机 BlackBerry DM6.0 完整刷机教程 含瘦身方法...
  13. CentOS 安装 Xware 迅雷远程下载程序
  14. Hive自定义函数(字母大小写转换)
  15. C语言逻辑操作符的巧妙用法:an anagram of a palindrome
  16. 随机点名器1(Java数组基础)
  17. React.Meno
  18. 用itchat导入微信好友信息并保存(详细)简单易懂
  19. 计算机教室设备安全管理制度,计算机教室和多媒体教室安全管理制度
  20. 美国东北大学计算机学院和工程学院,美国东北大学相当于中国什么等级的大学?...

热门文章

  1. 如何用阿里云服务器搭建微信公众号机器人?
  2. 用思维导图快速弄懂光伏系统的组成
  3. KISSY——事件Event.fire
  4. matlab 正轴测图,正二轴测图的画法.ppt
  5. python字符串处理去空格
  6. IBM软件集团副总裁:三个层面解析IBM云计算
  7. 替天行资源网同款人脉社群小程序V6.1.0源码
  8. git本地仓库绑定远程仓库
  9. 嵌入式工程师是怎样炼成的(六)---- 我要考研
  10. NFC手机上基于软件的卡模拟 重大利好还是安全噩梦