当前位置: 首页 > news >正文

Grid-dp,交互

P14000 Grid-dp,交互

P14000 Grid

题意

给定一个 \(N*M\) 的矩阵,从 0,0 开始,每次只能向一个方向移动任意格,每次移动会得到 (令 \(x\) 为当前值, \(y\) 为转移) \(\left| a_x - a_y\right| -c\) , 所以 $ dp_x = dp_y +\left|a_x - a_y\right| -c$,如果当前值更大,我们希望 \(dp_y-a_y\) 最小,同理,如果当前值更小,我们希望 \(dp_y+a_y\) 最大。

code + greader
// code
#ifndef ONLINE_JUDGE
#include "grid.h"
#endif // ONLINE_JUDGE#include <bits/stdc++.h>
#define ll long long
using namespace std;constexpr ll INF = 0x3f3f3f3f3f3f3f3f;// 令x为当前值,y为转移
// dp_x = dp_y + |a_x - a_y| -c
// 如果当前值更大,我们希望 dp_y-a_y 最小,此时+x
// 同理,如果当前值更小,我们希望dp_y+a_y最大,此时-x
// 令ma1为dp_y+a_ylong long max_profit(int n, int m, int c, std::vector<std::vector<int>> a)
{vector<vector<ll>> dp(n,vector<ll>(m,-INF));vector<ll> ma1_r(n,-INF) ,ma2_r(n,-INF);vector<ll> ma1_c(m,-INF) ,ma2_c(m,-INF);dp[0][0]=0;ma1_r[0]=a[0][0];  // 第0行 + 的最大值ma2_r[0]=-a[0][0]; // - 的最大值ma1_c[0]=a[0][0];ma2_c[0]=-a[0][0];for(int i=0;i<n;++i){for(int j=0;j<m;++j){if(!i && !j) continue;int x=a[i][j];ll rm=max(ma1_r[i]-x,ma2_r[i]+x)-c;ll cm=max(ma1_c[j]-x,ma2_c[j]+x)-c;dp[i][j]=max(rm,cm);ma1_r[i]=max(ma1_r[i],dp[i][j]+x);ma2_r[i]=max(ma2_r[i],dp[i][j]-x);ma1_c[j]=max(ma1_c[j],dp[i][j]+x);ma2_c[j]=max(ma2_c[j],dp[i][j]-x);}}return dp[n-1][m-1];
}
code + greader
// greader
#include "grid.h"
#include<iostream>
#include<vector>
using namespace std;
int main ()
{freopen("sample.in","r",stdin);// 本地测试freopen("sample.out","w",stdout);int n, m, c;cin >> n >> m >> c;vector<vector<int>> inp(n, vector<int>(m));for(int i = 0; i < n; i ++){for(int j = 0; j < m; j ++){cin >> inp[i][j];}}long long ans = max_profit(n, m, c, inp);cout << ans << endl;return 0;
}
//grid.h
#include <vector>long long max_profit(int N, int M, int C, std::vector<std::vector<int>> A);
http://www.jsqmd.com/news/47578/

相关文章:

  • 2025 年 11 月工业冷却塔,闭式冷却塔,不锈钢冷却塔,商场冷却塔最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025 年国内电容源头厂家最新推荐排行榜:聚焦核心技术与品质,五大实力品牌选购指南电解电容/薄膜电容公司推荐
  • HUST食堂解锁记录
  • 2025年浙江餐饮加盟服务商权威推荐榜单:上海加盟鲍鱼/燕之屋燕窝加盟/燕窝加盟服务商精选
  • 2025年杭州高端室内设计公司权威推荐榜单:大平层装修/室内家装/老屋翻新源头公司精选
  • 2025年浙江海外茶饮店创业加盟服务权威推荐榜单:越南奶茶店加盟创业/海外鲜奶茶加盟/东南亚茶饮加盟服务精选
  • 初一上册CSP-J和期中考试反思
  • 2025年工业洗地机器人定做厂家权威推荐榜单:驾驶式洗地机/商用洗地机/无人洗地机设备源头厂家精选
  • modbus(二)用NModbus4库实现Modbus tcp从站
  • 数位dp-模版
  • grub修复系统引导linux
  • 计算机字长与字节大小的发展历程
  • grub linux
  • #题解#洛谷 P 4375 Out of Sorts G#离散化#并查集#
  • Trae实操:连接Vizro MCP建立内容可视化
  • 2025年回收洋酒价格公司权威推荐榜单:洋酒回收价目表/哪里回收洋酒/洋酒回收价格源头公司精选
  • 2025年快递纸箱定做厂家权威推荐榜单:五层纸箱/重型纸箱/单层纸板箱源头厂家精选
  • 7-3 NCHU_单部电梯调度程序
  • 面向对象编程解决电梯调度问题
  • 2025年低音功放批发厂家权威推荐榜单:汽车音响改装功放/两路功放/四路功放源头厂家精选
  • 2025年镀锌角码实力厂家权威推荐榜单:万能立柱角码/角码连接件/钢结构预埋件源头厂家精选
  • Nmap 命令详细使用指南(官方参数全覆盖版) - 实践
  • B端界面设计之审批流程交互和UI界面——让审批“顺起来”
  • 从renderToString到hydrate,从0~1手写一个SSR框架 - 指南
  • grep用法linux
  • Matplotlib 电影票房分析挑战
  • selenium: 安装selenium
  • 基于单片机的故障检测自动保护智能防夹自动门设计及LCD状态显示架构
  • gpt安装 linux
  • 第2周作业