tle,求助
  • 板块灌水区
  • 楼主Flying_hp
  • 当前回复4
  • 已保存回复5
  • 发布时间2024/8/27 15:08
  • 上次更新2024/8/27 17:19:50
查看原帖
tle,求助
1123665
Flying_hp楼主2024/8/27 15:08

P10058tle,求助。我的代码时间复杂度是O(n),应该不会超时呀

#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s,command;
ll n;
ll res;
bool flag=true;
signed main() {
	cin>>s;
	cin>>n;
	string sp=s+s+s,sr=s;
	s=sp;
	ll l=sr.size(),r=l+sr.size()-1;
	while(n--) {
		cin>>command;
		if(command=="rev") {
			flag=!flag;
			continue;
		}
		cin>>res;
		if(flag==false) {
			if(command==">")command="<";
			else command=">";
		}
		ll mv=(command==">"?-1:1);
		res%=sr.size();
		if(mv==-1) {
			if(l+res*mv<0)s=sr+s,l+=sr.size(),r+=sr.size();
		}
		if(mv==1) {
			if(r+res*mv>s.size())s=s+sr;
		}
		l+=mv*res,r+=mv*res;
	}
	if(flag) {
		for(ll i=l; i<=r; i++) {
			cout<<s[i];
		}
	} else {
		for(ll i=r; i>=l; i--) {
			cout<<s[i];
		}
	}
	return 0;
}


2024/8/27 15:08
加载中...