关于我在这题中使用回溯导致空间爆炸的问题
代码如下,感谢dalao的指点,orzorzorz
#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<int>res;
void dfs(vector<int>&vec,int sum,int st)
{
res.push_back(sum);
if(st>=vec.size()) return;
for(int i=st;i<vec.size();i++)
{
sum+=vec[i];
dfs(vec,sum,i+1);
sum-=vec[i];
}
}
signed main()
{
int tmp;
vector<int>vec;
int x=2;
while(cin>>tmp)
{
vec.push_back(tmp);
}
dfs(vec,0,0);
int summer=0;
for(int i=0;i<res.size();i++)
{
summer+=res[i];
}
cout<<summer;
return 0;
}