社区讨论

代码求调

P2404自然数的拆分问题参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mj3ytgmw
此快照首次捕获于
2025/12/13 15:19
2 个月前
此快照最后确认于
2025/12/13 15:54
2 个月前
查看原帖
大家帮忙看看我的代码怎么全WA
CPP
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> vis;
void dfs(int n, vector<int>& path) {
	if (n == 0 && path[0] != n) {
		sort(path.begin(), path.end());
		bool hasVis = false;
		for (int i = 0; i < vis.size(); i++) {
			if (path == vis[i]) {
				hasVis = true;
			}
		}
		if (hasVis == false) {
			vis.push_back(path);
			for (int i = 0; i < path.size(); i++) {
				printf("%d", path[i]);
				if (i != path.size() - 1) {
					printf("+");
				}
			}
			printf("\n");
		}
		return;
	}
	for (int num = 1; num <= n; num++) {
		path.push_back(num);
		dfs(n - num, path);
		path.pop_back();
	}
}
int main() {
	int n;
	scanf("%d", &n);
	vector<int> path;
	dfs(n, path);
	return 0;
}

回复

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

正在加载回复...