洛谷方格取数

#include <bits/stdc++.h>

using namespace std;

const int MAXN = 10;

int grid[MAXN][MAXN];

int dp[MAXN][MAXN][MAXN][MAXN];

int main(){

int n;

cin >> n;

int x, y, num;

while(true){

cin >> x >> y >> num;

if(x == 0 && y == 0 && num == 0)

break;

grid[x][y] = num;

}

for(int x1 = 1; x1 <= n; x1++){

for(int y1 = 1; y1 <= n; y1++){

for(int x2 = 1; x2 <= n; x2++){

int y2 = x1 + y1 - x2;

if(y2 < 1 || y2 >n)

continue;

dp[x1][y1][x2][y2] = max({

dp[x1 - 1][y1][x2 - 1][y2],//下下

dp[x1 - 1][y1][x2][y2 - 1],//下右

dp[x1][y1 - 1][x2 - 1][y2],//右下

dp[x1][y1 - 1][x2][y2 - 1],//右右

});

if(x1 == x2 && y1 == y2){

dp[x1][y1][x2][y2] += grid[x1][y1];

}else{

dp[x1][y1][x2][y2] += grid[x1][y1] + grid[x2][y2];

}

}

}

}

cout << dp[n][n][n][n] << endl;

return 0;

}

相关推荐
摘星编程6 分钟前
深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑
网络·算法·rust·系统编程·tokio
Hard_Liquor32 分钟前
Datawhale秋训营-“大运河杯”数据开发应用创新大赛
人工智能·深度学习·算法
liu****34 分钟前
笔试强训(八)
开发语言·算法·1024程序员节
草莓工作室37 分钟前
数据结构14:查找
数据结构·算法
屈冠成2 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
应用市场2 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法
启诚科技2 小时前
树上二分(树的重心)
c++·算法·二分·树的重心
风筝在晴天搁浅3 小时前
代码随想录 617.合并二叉树
数据结构·算法
AICodeThunder3 小时前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论
南方的狮子先生3 小时前
【逻辑回归】从线性模型到逻辑回归
算法·机器学习·逻辑回归