如何进行回溯,回溯的内涵是什么?
  • 板块学术版
  • 楼主君の名
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/7/19 15:30
  • 上次更新2023/11/4 14:10:48
查看原帖
如何进行回溯,回溯的内涵是什么?
358867
君の名楼主2021/7/19 15:30
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
int a[1000005]={1};
void inprintf(int t)
{
	for(register int i=1;i<=t-1;i++)
	{
		cout<<a[i]<<"+";
	}
	cout<<a[t]<<endl;
}
void DFS(int s,int t)
{
	for(register int i=a[t-1];i<=s;i++)
	{
		if(i<n)
		{
			a[t]=i;
			s-=i;
			if(s==0)
			{
				inprintf(t);
			}
			else
			{
				DFS(s,t+1);
			}
			s+=i;(这是什么意思,如何回溯一步)
		}
	}
}
int main()
{
	scanf("%d",&n);
	DFS(n,1);
	return 0;
}
2021/7/19 15:30
加载中...