【蓝桥杯】试题 算法训练 拿金币

dp: max问题


题目链接

/*
*date:2021.11.29
*author:percation
*/
#include 
using namespace std;
const int N = 1e3 + 10;
int f[N][N];
int a[N][N];
int n;
int main(){
	cin >> n;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			cin >> f[i][j];
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			f[i][j] += max(f[i - 1][j],f[i][j - 1]);//选往右或往下中最大的金币数 
		}
	}
	cout << f[n][n] << endl;
	return 0;
} 

你可能感兴趣的:(蓝桥杯,c++)