深度优先搜索

DFS解决什么问题

  • 给定一个序列,枚举这个序列的所有子序列(可以不连续)
  • 枚举从N个整数中选择K个数的所有方案

背包问题

int n,maxC,V;
int W[], C[];
void DFS(int index, int sumW, int sumC)
{
	if (index == n)
	{
		return;
	}
	//不放
	DFS(index + 1, sumW, sumC);
	//放
	if (sumW + W[index] <= V)//放得下
	{
		if (sumC + C[index]>maxC)
		{
			maxC = sumC + C[index];
		}
		DFS(index + 1, sumW + W[index], sumC + C[index]);
	}
	

}
原文地址:https://www.cnblogs.com/code-fun/p/15224642.html