MLE!
查看原帖
MLE!
792820
jackpudding楼主2023/10/27 13:08

有没有佬能解答一下呀? 一直报错MLE,不知道哪里错了

#include <iostream>
#include <string>
#include <bitset>
using namespace std;

int main() {
	int n, m;
	string binary;
	cin >> n;
	string* str = new string[n + 1];
	str[0] = "";
	for (int i = 1; i <= n; i++) {
		cin >> str[i];
	}
	cin >> m;
	string* newstr = new string[n + m + 1];
	newstr[0] = "";
	for (int i = 0; i <= n; i++) {
		newstr[i] = str[i];
	}
	delete[] str;
	for (int i = 1; i <= m; i++) {
		int a, b, k = 0;
		bool flag = 0;//记录是否有子串
		cin >> a >> b;
		int pos = n + i;
		newstr[pos] = newstr[a] + newstr[b];
		if (newstr[pos].find("0") == string::npos || newstr[pos].find("1") == string::npos) {
			cout << 0 << endl;
			continue;
		}
		while (true) {
			k++;
			for (int j = 0; j < (1 << k); j++) {
				binary = bitset<32>(j).to_string().substr(32 - k);
				if (newstr[pos].find(binary) != string::npos) {
					continue;
				}
				else {
					flag = 1;
					break;
				}
			}
			if (flag) {
				cout << k - 1 << endl;
				break;
			}
		}
	}
	return 0;
}
2023/10/27 13:08
加载中...