找工作好难啊
啊啊啊啊啊
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
set<int> ans;
vector<int> path;
function<void(int,int)> dfs = [&](int now,int sum){
if(sum > n) return;
if(sum < n && sum + now > n) return;
if(sum == n){
int res = 0;
for(int i = 0;i < path.size();i ++ )
for(int j = 0;j < i;j ++ )
res += path[i] * path[j];
ans.insert(res);
return;
}
for(int i = now;i + sum <= n;i ++ ){
path.push_back(i);
dfs(i,sum + i);
path.pop_back();
}
};
dfs(1,0);
cout << (int)ans.size();
}
浙公网安备 33010602011771号