RQNOJ 传纸条

简介: 点击打开链接 思路: dp 分析: 1 题目要求找到两条不同的路线使得和最大,那么我们可以换种思路就是看成是都是从(1,1)这个点出发的两条路线并且不相交,最后到达(n , m)这个点的和最大 2 题目说了从左上角往右下角传递的时候只能向...

点击打开链接

思路: dp
分析:
1 题目要求找到两条不同的路线使得和最大,那么我们可以换种思路就是看成是都是从(1,1)这个点出发的两条路线并且不相交,最后到达(n , m)这个点的和最大
2 题目说了从左上角往右下角传递的时候只能向下或向右,从右下角往左上角传递的时候只能向左或向上,那么很明显到达终点只要n+m步
3 那么由于是同时出发并且两个路线是不相交,那么在第k步的时候我们就可以知道两个路线的点肯定在同一条对角线上,一个n+m的矩形有n+m条对角线那么刚好符合起点到达终点需要n+m步
4 那么现在最难的就是去推出一个无后效性并且唯一表示一个状态的式子,经过研究可以得到dp[k][i][j]表示第k步的时候第一条路线在i列,第二条路线在j列。由于通过k 和 列数 我们也可以知道行数,所以我们可以得到以下的状态转移方程 dp[k][i][j] = max{dp[k-1][i][j] , dp[k-1][i-1][j] , dp[k-1][i-1][j-1] , dp[k-1][i][j-1]} + num[x][i]+num[y][j] (x,y表示的是行数)

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 110;

int n , m , num[MAXN][MAXN];
int dp[MAXN][MAXN][MAXN];

int solve(){
    memset(dp , 0 , sizeof(dp));
    for(int k = 2 ; k <= n+m ; k++){
        for(int i = 1 ; i <= m ; i++){
            for(int j = 1 ; j <= m ; j++){
                if(i != j){
                    int tmp = max(dp[k-1][i][j] , dp[k-1][i][j-1]); 
                    tmp = max(tmp , dp[k-1][i-1][j-1]); 
                    tmp = max(tmp , dp[k-1][i-1][j]); 
                    dp[k][i][j] = tmp+num[k+1-i][i]+num[k+1-j][j];
                }
            }
        }
    }
    return max(dp[n+m-1][m-1][m] , dp[n+m-1][m][m-1]);
}

int main(){
    while(scanf("%d%d" , &n , &m) != EOF){
        for(int i = 1 ; i <= n ; i++) 
            for(int j = 1 ; j <= m ; j++)
                scanf("%d" , &num[i][j]);
        printf("%d\n" , solve());
    } 
    return 0;
}



目录
相关文章
|
9月前
|
监控 算法 网络协议
Java 实现局域网电脑屏幕监控算法揭秘
在数字化办公环境中,局域网电脑屏幕监控至关重要。本文介绍用Java实现这一功能的算法,涵盖图像采集、数据传输和监控端显示三个关键环节。通过Java的AWT/Swing库和Robot类抓取屏幕图像,使用Socket进行TCP/IP通信传输图像数据,并利用ImageIO类在监控端展示图像。整个过程确保高效、实时和准确,为提升数字化管理提供了技术基础。
189 15
|
Python
经验大分享:Python函数返回值
经验大分享:Python函数返回值
212 0
|
机器学习/深度学习 算法 Python
Iris
【9月更文挑战第10天】
272 8
|
存储
网络部分应掌握的重要知识点
网络部分应掌握的重要知识点
102 1
ASO文件究竟哪来做什么用的?
ASO是一个缓存性质的东西,在类编译后,他会在自己缓存的地方生成一个ASO文件,等到你再次测试这个文件的时候,他相关的类系统就会做一个比较,没有变化的就不用在编译了。也就是节省以后测试输出的时间! 差不多就是缓存的意思, 但是实际上,你把一个类文件直接覆盖过来的时候 有时候发布出来还是用的老的那个.
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
690 23
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。