找工作好难啊

啊啊啊啊啊

点击查看代码
#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();
}
posted @ 2025-03-28 23:04  MLK_acmer  阅读(14)  评论(0)    收藏  举报