社区讨论

各位看看还能再优化吗?DFS求助

P1025[NOIP 2001 提高组] 数的划分参与者 6已保存回复 48

讨论操作

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

当前回复
48 条
当前快照
1 份
快照标识符
@lodecqgv
此快照首次捕获于
2023/10/31 05:13
2 年前
此快照最后确认于
2023/11/06 20:34
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;
int n,f,a[100000]={1},toto;
int PR(int k)
{
	if(k==f)
	{
		toto++;
	}
}
void dfs(int s,int k,int sum)
{
	for(int i=a[k-1];i<=n-sum;i++)
		if(i<n&&k<=f&&s>=0)
		{
			a[k]=i;
			s-=i;
			if(s==0)PR(k);
			else dfs(s,k+1,sum+i);
			s+=i;
		}
}
int main()
{
	cin>>n>>f;
	dfs(n,1,0);
	cout<<toto;
}
我尽力了

回复

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

正在加载回复...