后四个点WA求助
查看原帖
后四个点WA求助
760907
Matheory楼主2022/10/23 13:20

如果我的思路有误,求正解

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int m[1000010];
int n;
int c;
bool p(int s[]) {
	int a = 0, b = 0, c = 0, d = 0;
	for (int i = 1; i < n; i++) {
		if (s[i] == 0 && s[i+1] == 1) a++;
		if (s[i] == 0 && s[i+1] == 0) b++;
		if (s[i] == 1 && s[i+1] == 0) c++;
		if (s[i] == 1 && s[i+1] == 1) d++;
	}
	if (a == b && b == c && c == d) return 1;
	return 0;
}
void dfs(int x, int a) {
	if (x > n) {
		if (p(m)) {
			for (int i = 1; i <= n; i++)
				printf("%d", m[i]);
			exit(0);
		}
		return;
	}
	if (c > 10000) {
		cout << -1;
		exit(0);
	}
	m[x] = a;
	c++;
	dfs(x + 1, 0);
	dfs(x + 1, 1);
}
int main() {
	cin >> n;
	dfs(1, 0);
	dfs(1, 1);
	cout << -1;
	return 0;
}
2022/10/23 13:20
加载中...