日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZCMU-1550-AA

發(fā)布時間:2024/3/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZCMU-1550-AA 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1550: AA

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

Description

?其實(shí)第一次聽說要出題目我是拒絕的,因?yàn)?#xff0c;你不能讓我出,我就馬上去出,我要試一下,因?yàn)槲也辉敢獬鐾炅艘院笤偌右恍┌咐先?#xff0c;然后題目duang的一下就被AC了。現(xiàn)在要求對字符串進(jìn)行環(huán)狀左移操作,每次向左移動一個位置。例如:對duang進(jìn)行操作,得到的全部字符串為:

duang

uangd

angdu

ngdua

gduan

輸出得到最小字典序的字符串的最小移動次數(shù)。

Input

輸入一個數(shù)T(1<=T<=100),表示接下來有T行字符串;輸入字符串S,S的長度為L(5<=l<=100000)。

Output

輸出一個數(shù)字,表示為得到最小字典序的字符串的最小移動次數(shù)。

Sample Input

2 baabaa alabala

Sample Output

1 6
【解析】 這道題我提交了好多次都是超時...但是呢我覺得做題目嘛主要是學(xué)東西..我是用map,結(jié)構(gòu)體還有用劉汝佳老師書上的方法也試了一下還是超時...此處附上我的超時代碼...其實(shí)有的時候我們不能真的為了AC而去AC。還可以直接比較..還有就是當(dāng)我們用map<string,int>的時候是按照string的最小字典序來排列的所以我們也可以用map#include<cstdio> #include<algorithm> #include<iostream> #include<map> #include<cstring> using namespace std; struct E {string zi;//結(jié)構(gòu)體存儲int b; }; bool cmp(E a,E b) {return (a.zi).compare(b.zi)<0;//兩個字符串進(jìn)行比較,字典序小的排在前面 } 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);//根據(jù)字典序來排序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)//此函數(shù)用來比較字典序{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; }


總結(jié)

以上是生活随笔為你收集整理的ZCMU-1550-AA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。