主页
深度搜索查表和二路递归
作者: splub
#include <iostream>

template<class T>
T Max(const T& a, const T& b){
	return a>b ? a : b;
}

using namespace std;

int Tree[50][50], N, Sum;

int deep_find_search(int x, int y, int C){
	if(x == N){
		if(C > Sum)
			Sum = C;
		return Sum;
	}
	deep_find_search(x+1, y, C+Tree[x+1][y]);
	deep_find_search(x+1, y+1, C+Tree[x+1][y+1]);
}

int A[50][50], B[50][50];
//查表
int dps(int x, int y){
	if(!!B[x][y]) return B[x][y];
	if(x==N)      B[x][y] = A[x][y];
	else B[x][y] = A[x][y] + Max(dps(x+1, y), dps(x+1, y+1));
	return B[x][y];
} 


int main(){
	cin >> N;
	for(int i=1; i<=N; i++){
		cout<< "\n";
		for(int j=1; j <= i; j++)
			cout << Tree[j][i];
	}
		
	return 0; 
}
发表于:2019年4月23日 下午 6:33:47
更新于:2019年4月23日 下午 6:33:47