社区讨论

p1032字符变化 啊,程序炸了

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mi7cq49z
此快照首次捕获于
2025/11/20 19:32
4 个月前
此快照最后确认于
2025/11/20 19:32
4 个月前
查看原帖
求助大佬,为什么这个程序会爆空间啊 #include<bits/stdc++.h> using namespace std; struct st{string b; string a; string now; int num; }; vectoradj; string s,ss ; bool bfs(){//xian pan duan zai chuli queueq; setvis; st temp; temp.now=s; temp.num=0; q.push(temp); while(!q.empty()){ st u=q.front(); q.pop(); if(u.num>10)return false; for( int i=0;i<adj.size();i++){ string a1=adj[i].a; string b1=adj[i].b; if(u.now.find(a1)){int wei=u.now.find(a1); while(u.now.find(a1,wei)){ u.now.replace(wei,a1.size(),b1); wei++;// ranhuopanchong } }if(u.now==ss){printf("%d",u.num); return true;} if(!vis.count(u.now)){ st v=u; v.num++; q.push(v); vis.insert(v.now);} } } printf("fuck");
CPP
					   return false;
			
			   }
			   int main(){
				 //  freopen("string.in","r",stdin);
				   //freopen("string.out","w",stdout);
				   scanf("%s%s",&s,&ss);
				   st ad[10];  int num1=0;
				  // while(cin>>ad[num1].a>>ad[num1].b){num1++;}
				//	   num1--;//chu vector
				for(int k=0;k<3;k++){
					scanf("%s%s",&ad[k].a,&ad[k].b);
				}
					for(int j=0;j<num1;j++){    adj.push_back(ad[j]);  }
					if(bfs()==0)printf("NO ANSWER");
				//		fclose(stdin);
				//		fclose(stdout);
				   return 0;}
			

回复

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

正在加载回复...