洛谷 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;
}

浙公网安备 33010602011771号