有没有神犇进来看看?我无语了……
  • 板块学术版
  • 楼主Daben1
  • 当前回复20
  • 已保存回复20
  • 发布时间2021/11/13 17:33
  • 上次更新2023/11/4 00:42:03
查看原帖
有没有神犇进来看看?我无语了……
540201
Daben1楼主2021/11/13 17:33

请问一下我这个代码有什么问题啊?自己测试一切正常,但放在评测系统里为啥就编译失败嘞?

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e2 + 10;
const int INF = 0x3f3f3f3f;
char s[MAXN];
bool vis[55];
int ans[55];
int len, tot, n1, n2;

bool DFS(int d1, int d2, int p, int cnt) {
	if (cnt == tot)
		return true;
	if (d1 < n1) {
		int x = s[p] - '0';
		if (x != 0 && !vis[x]) {
			vis[x] = true;
			ans[cnt + 1] = x;
			if (DFS (d1 + 1, d2, p + 1, cnt + 1))
				return true;
			vis[x] = false;
		}
	}
	if (d2 < n2) {
		int x = (s[p] - '0') * 10 + (s[p + 1] - '0');
		if (x >= 0 && x <= tot && !vis[x]) {
			vis[x] = true;
			ans[cnt + 1] = x;
			if (DFS (d1, d2 + 1, p + 2, cnt + 1))
				return true;
			vis[x] = false;
		}
	}
	return false;
}

int main(void) {

	while (scanf ("%s", s + 1) == 1) {
		memset (vis, false, sizeof (vis));
		len = strlen (s + 1);
		tot = (len + 9) / 2;
		if (tot <= 9) {
			for (int i = 1; i <= len; ++i) {
				printf ("%c%c", s[i], (i == len) ? '\n' : ' ');
			}
		} else {
			n1 = 9;
			n2 = tot - 9;
			DFS (0, 0, 1, 0);
			for (int i = 1; i <= tot; ++i) {
				printf ("%d%c", ans[i], (i == tot) ? '\n' : ' ');
			}
		}
	}
	return 0;
}

求解决,感谢!

2021/11/13 17:33
加载中...