社区讨论

这个报错是什么情况,求助大佬!

P1032[NOIP 2002 提高组] 字串变换(疑似错题)参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lo2fvhdz
此快照首次捕获于
2023/10/23 13:10
2 年前
此快照最后确认于
2023/10/23 13:10
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
struct node{
	string s;
	int t;
};
int ans;
string c[6],d[6];
int czhao(string a,string b){
	int qflag=-1;
	for(int i=0;i<a.size();i++){
		string c;
		if(a[i]==b[0]){
			for(int j=i;j<i+b.size()&&j<a.size();j++)
				c+=a[j];
			if(c==b)qflag=i;
		}
	}
	return qflag;
}
int main(){
	queue<node>p;
	string a,b;
	cin>>a>>b;
	node F={a,0};
	p.push(F);
	while(!p.empty()){
		node N=p.front();
		p.pop();
		if(ans<6){
		cin>>c[ans]>>d[ans];
		ans++;
		}
		for(int i=0;i<ans-1;i++){
			string e="";
			if(czhao(N.s,c[i])>=0){
				for(int j=0;j<czhao(N.s,c[i]);j++)
				    e+=c[i][j];
				e+=d[i];
				for(int j=czhao(N.s,c[i])+c[i].size();j<N.s.size();j++)
				    e+=c[i][j];
				node N={e,N.t+1};
				p.push(N);
				break;
			}
		}
		node E=p.front();
		if(E.t>10){
			cout<<"NO ANSWER!";
			return 0;
		}
		else {
			if(E.s==b){
				cout<<E.t;
				return 0;
			}
		}
	}
	return 0;
}
terminate called after throwing an instance of 'std::length_error' what(): basic_string::_M_create

回复

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

正在加载回复...