如何优化空间?
查看原帖
如何优化空间?
335094
Lucifero楼主2021/4/2 00:49

想要控制在 64 MB\texttt{64 MB} 以内,但保留 string STL\texttt{string STL}

#include <bits/stdc++.h>
using namespace std;
class Change
{
public:
	string g;
	int step;
};
string rA[7],rB[7],A,B;
queue<Change> r;
int n(1),ans;
void bfs(Change u)
{
	r.push(u);
	Change v;
	int p,i;
	while(!r.empty())
	{
		u=r.front(),r.pop();
		if (u.step>10) break;
		for(i=1;i<=n;i++)
		{
			p=u.g.find(rA[i],0);
			while(p!=-1)
			{
				v.g=u.g;
				v.g.replace(p,(int)rA[i].size(),rB[i]);
				v.step=u.step+1;
				if (v.g==B)
				{
					ans=v.step;
					return;
				}
				r.push(v);
				p=u.g.find(rA[i],p+1);
			}
		}
	}
	ans=-1;
	return;
}
int main()
{
	//字串变换
	cin>>A>>B;
	while(cin>>rA[n]>>rB[n]) n++;n--;
	bfs((Change){A,0});
	if (ans==-1) printf("NO ANSWER!");
	else printf("%d",ans);
}
2021/4/2 00:49
加载中...