全爆TLE求助
查看原帖
全爆TLE求助
757040
MuLinnnnn楼主2023/1/15 08:43
#include <cstdio>
#include <iostream>
using namespace std;
int a[10001]= {1},n,total;

int dfs(int s,int t) {//s现在到那个数
	for(int i=a[t-1]; i<=s; i++) {
		if (i<n) {
			a[t]=i;
			s-=i;
			if (s==0) {//一轮完事了 打印 
//				printf("%d=",n);
				for (int i=1; i<=t-1; i++) {
					printf("%d+",a[i]);
				}
				printf("%d\n",a[t]);
				total++;
			} else {
				dfs(s,t+1);//递归 
			}
			s+=i;//回溯 
		}
	}
}

int main() {
	scanf("%d",&n);
	dfs(n,1);
//	printf("total=%d",total);
}

2023/1/15 08:43
加载中...