社区讨论

请问是否有记搜优化的递归解法?我研究了半天没写出来,以下为原始版。感谢大佬赐教

P2415集合求和参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo9ifnut
此快照首次捕获于
2023/10/28 11:56
2 年前
此快照最后确认于
2023/10/28 11:56
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

int a[1001];
int ans;
int sum;//从这一节点到子节点的链上的和 
void dfs(int loc,int len)
{
	if(loc > len)
	{
		ans += sum;
		return;
	}
	//
	sum += a[loc]; //选这个 
	dfs(loc+1,len);// 
	//
	sum -= a[loc]; //不选这个
	dfs(loc+1,len);
}

int main()
{
	//freopen("input.in","r",stdin);
	//freopen("output.out","w",stdout);
	
	int x,i=0;
	while( cin >> x )
	{
		a[++i] = x;
	}
	dfs(1,i);
	cout << ans <<endl;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...