90分,快疯了!
查看原帖
90分,快疯了!
658786
STUDENT00楼主2022/9/15 20:16

有哪位大佬可以给我第4个测试点?TLE了!

时间复杂度为O(n2×log2n)O(n^2×log_2n),代码如下:

#include<bits/stdc++.h>
using namespace std;
string str; 
int len,a[100010];
bool cmp(int a,int b){
	int k1=a,k2=b;
	for(int i=0;i<len;i++){
		if(str[k1]!=str[k2]) return str[k1]<str[k2];
		k1++;
		if(k1>=len) k1-=len;
		k2++;
		if(k2>=len) k2-=len;
	}
	return 1;
}
int main(){
	cin>>str;
	len=str.length();
	for(int i=0;i<len;i++) a[i]=i;
	sort(a,a+len,cmp);
	for(int i=0;i<len;i++){
		int p=len-1+a[i];
		if(p>=len) p-=len;
		putchar(str[p]);
	}
	return 0;
}
2022/9/15 20:16
加载中...