在我代码中将函数返回声明从void改为int就会MLE
查看原帖
在我代码中将函数返回声明从void改为int就会MLE
787061
Payton123楼主2024/5/21 22:44

我的这份代码可以AC

#include<bits/stdc++.h>
using namespace std;
void DFS(string mid, string end) {
	if (mid.size() > 0) {

		//cout<<"out:"<<end[end.size()-1]<<endl;
		cout << end[end.size() - 1];

		int k;
		for (int i = 0; i < mid.size(); i++) {
			if (mid[i] == end[end.size() - 1]) {
				k = i;
				break;
			}
		}
		//cout<<"sub1:"<<mid.substr(0,k)<<"  "<<end.substr(0,k)<<endl;
		//cout<<"sub2:"<<mid.substr(k+1,mid.size()-k-1)<<"  "<<end.substr(k,mid.size()-k-1)<<endl;
		DFS(mid.substr(0, k), end.substr(0, k));
		DFS(mid.substr(k + 1), end.substr(k, mid.size() - k - 1));
	}
}
int main() {
	string midSt, endSt;
	cin >> midSt >> endSt;
	DFS(midSt, endSt);
	return 0;
}

但是如果我将BFS函数的返回值从void改为int,那么这道题每个数据点都会MLE。 我不是很清楚这是什么原因,有大佬能够好心解释一下吗?

2024/5/21 22:44
加载中...