洛谷 P2404 自然数的拆分问题(暴搜)

AcCode:

#include<bits/stdc++.h>
using namespace std;
int N;
vector<vector<int> > ans;
vector<int> path;
void dfs(int sum, int be){
	if(sum == N){
		ans.push_back(path);
		return;
	}
	
	for(int i = be; i < N && sum + i <= N; i++){
		path.push_back(i);
		dfs(sum + i, i);
		path.pop_back();
	}
}
int main(){
    cin >> N;
    dfs(0, 1);
    for(int i = 0; i < ans.size(); i++){
    	for(int j = 0; j < ans[i].size(); j++){
    		cout << ans[i][j];
    		if(j != ans[i].size() - 1) cout << "+";
		}
		cout << endl;
	}
    return 0;
} 
posted @ 2025-04-01 17:37  Yuhhhhh  阅读(24)  评论(0)    收藏  举报