为什么最后一个点TLE啊
查看原帖
为什么最后一个点TLE啊
1048500
ricenoodles楼主2024/5/26 22:21
#include<iostream>
using namespace std;
long long n,k,rest;
long long ans[11];
long long tot=0;
void dfs(long long pos){
	if(pos>=k+1){
		for(int i=1;i<=k;i++){
			cout<<ans[i];
		}
		cout<<endl;
		if(rest==0){
			tot++;
		}
		return;
	}
	for(long long i=1;i<=rest-(k-pos);i++){
		if(ans[pos-1]<=i){
			ans[pos]=i;
			rest-=i;
			dfs(pos+1);
			ans[pos]=0;
			rest+=i;	
		}
	}
}
int main(){
	cin>>n>>k;
	rest=n;
	dfs(1);
	cout<<tot<<endl;
	return 0;
}
2024/5/26 22:21
加载中...