剪枝后最后一个点还是tle怎么办
查看原帖
剪枝后最后一个点还是tle怎么办
1233392
RY111楼主2024/7/29 10:11
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=210;

int arr[maxn];
int n,k;

int ans=0;
void dfs(int x,int start,int sum)
{
	if(sum>n)
		return ;

	if(x>k)
	{
		if(sum==n)

			ans++;
		return ;

	}
	for(int i=start; i<=n; i++)
	{
		arr[x]=i;
		dfs(x+1,i,sum+i);
		arr[x]=0;

	}

}
signed main()
{
	cin>>n>>k;
	dfs(1,1,0);
	cout<<ans;
	return 0;

}
2024/7/29 10:11
加载中...