社区讨论

求助「chaynOI-R2」T1

学术版参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mlgxs4am
此快照首次捕获于
2026/02/11 02:30
上周
此快照最后确认于
2026/02/11 02:30
上周
查看原帖
为啥没上主题库喵
我的做法是先构造一个 abababa... 串,让这个串与给出的串长度相等,然后再从后往前调整这个串,结果除了 sub3 以外 MLE 了,是这个做法有什么错误还是被 hack 掉了呢?
代码:
CPP
#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9'){
		if(c=='-')
			f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
string t;
vector<pair<int,int>> ans;
vector<char> s;
int main(){
	cin>>t;
	int n=t.size();
	s.push_back('a');
	s.push_back('b');
	ans.push_back({1,'a'});
	ans.push_back({1,'b'});
	for(int i=2;i<n;i++){
		ans.push_back({1,'c'});
		if(s[i-1]=='a') s.push_back('b');
		else s.push_back('a');
		ans.push_back({2,i+1});
	}
	for(int i=n-1;i>=2;i--){
		while(s[i]!=t[i]){
			if(s[i-1]==t[i]){
                s[i-1]='a'+'b'+'c'-s[i-2]-s[i-1];
                ans.push_back({2,i}); 
			}
			else{
				s[i]='a'+'b'+'c'-s[i]-s[i-1];
                ans.push_back({2,i+1}); 
			}
		}
	}	
	printf("%d\n",ans.size());
	for(int i=0;i<ans.size();i++){
		if(ans[i].first==1) printf("%d %c\n",ans[i].first,(char)ans[i].second);
		else printf("%d %d\n",ans[i].first,ans[i].second);
	}
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...