拆分自然数(单参数 搜索回溯 C++)

【算法模板】

void dfs(int step){
	判断边界{
		输出解 
    }

	尝试每一种可能{
		满足check条件{
	    	标记
	    	继续下一步:dfs(step+1)
	    	恢复初始状态(回溯的时候要用到)
    	}
	}
}

【算法代码】

#include 
using namespace std;

const int maxn=1001;

int step,n,sum;
int total=0;
int a[maxn]= {1};

void print(int step) {
	total++;
	cout<>n;
	sum=n;
	dfs(1);
	cout<

你可能感兴趣的:(信息学竞赛,DFS)