剪枝-数的划分
  • 板块题目总版
  • 楼主KMSK
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/2/20 11:17
  • 上次更新2023/10/28 08:05:29
查看原帖
剪枝-数的划分
472423
KMSK楼主2022/2/20 11:17

题目链接数的划分
80分TLE怎么剪枝怎么剪枝怎么剪枝
代码如下:

using namespace std;
int n,k;//将整数 nn 分成 kk 份,且每份不能为空
long long ans;
void dfs(int n,int m,int t)//当前剩余数 当前已经分的份数  上一个数 
{
	if(m>k)return;
	if(n==0&&m!=k)return;
	if(n==0&&m==k)
	{
		ans++;
		return;
	}
	if(t*(k-m)>n)return;
	for(int i=t;i<=n;i++)
	{
		dfs(n-i,m+1,i);
	}
}
int main()
{
	cin>>n>>k;
	dfs(n,0,1);
	cout<<ans<<endl;
	return 0;
}

2022/2/20 11:17
加载中...