洛谷方格取数

#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;

}

相关推荐
仰泳的熊猫1 分钟前
1031 Hello World for U
数据结构·c++·算法·pat考试
高山上有一只小老虎8 分钟前
小红的正整数计数
java·算法
AnAnCode9 分钟前
【时间轮算法-实战】Java基于Netty的 `HashedWheelTimer`快速搭建时间轮算法系统
java·开发语言·算法·时间轮算法
liu****19 分钟前
12.C语言内存相关函数
c语言·开发语言·数据结构·c++·算法
FPGA_无线通信34 分钟前
OFDM 精频偏补偿
算法·fpga开发
程序员-King.36 分钟前
day109—同向双指针(字符串)—每个字符最多出现两次的最长子字符串(LeetCode-3090)
算法·leetcode·双指针
青山的青衫36 分钟前
【单调栈和单调队列】LeetCode hot100+面试高频
算法·leetcode·面试
俊俊谢1 小时前
【浮点运算性能优化】浮点转定点算法库的多平台通用移植方案与性能评估优化
算法·性能优化·c·浮点转定点·多平台移植
电饭叔1 小时前
Luhn算法与信用卡识别完善《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之三
android·python·算法
bbq粉刷匠1 小时前
力扣-电话号码组合
java·算法