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

[题解]P7074 [CSP-J 2020] 方格取数

P7074 [CSP-J 2020] 方格取数

如果设 \(f_{i,j}\)\((1,1)\)\((i,j)\) 的最大权值和,上下相邻的两个元素的转移就是双向的了。有后效性,无法 DP。

image

不过题目说“不能重复经过已经走过的方格”,也就是说每一列只能往一个方向走。

所以可以加一维规定转移方向:\(f_{i,j,k=0/1}\)\(k=0\) 为从下面转移过来,\(k=1\) 为从上面转移过来。

这样 \(f_{i,j,0},f_{i,j,1}\) 的转移就没有后效性了:

\[\large \begin{cases} f_{i,j,0}=\max(f_{i+1,j,0},f_{i,j-1,0},f_{i,j-1,1})\\ f_{i,j,1}=\max(f_{i-1,j,1},f_{i,j-1,0},f_{i,j-1,1}) \end{cases} \]

时间复杂度 \(O(nm)\)

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e3+2;
int n,m,a[N][N],f[N][N][2];
signed main(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}memset(f,-0x3f,sizeof f);f[1][1][0]=f[1][1][1]=a[1][1];for(int i=2;i<=n;i++) f[i][1][1]=f[i-1][1][1]+a[i][1];for(int i=2;i<=m;i++){for(int j=1;j<=n;j++){f[j][i][1]=max({f[j-1][i][1],f[j][i-1][0],f[j][i-1][1]})+a[j][i];}for(int j=n;j>=1;j--){f[j][i][0]=max({f[j+1][i][0],f[j][i-1][0],f[j][i-1][1]})+a[j][i];}}cout<<f[n][m][1]<<"\n";return 0;
}

或者写记搜:

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e3+2,inf=1e15;
int n,m,a[N][N],f[N][N][2];
inline int dfs(int x,int y,bool d){if(x<1||x>n||y<1||y>m) return -inf;if(f[x][y][d]^(-inf)) return f[x][y][d];if(d) f[x][y][d]=max({dfs(x-1,y,1),dfs(x,y-1,0),dfs(x,y-1,1)});else  f[x][y][d]=max({dfs(x+1,y,0),dfs(x,y-1,0),dfs(x,y-1,1)});f[x][y][d]+=a[x][y];return f[x][y][d];
}
signed main(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];f[i][j][0]=f[i][j][1]=-inf;}}f[1][1][0]=f[1][1][1]=a[1][1];cout<<dfs(n,m,1)<<"\n";return 0;
}
http://www.fuzeviewer.com/news/438/

相关文章:

  • 【CI130x 离在线】如何运行 curl 脚本
  • 这才是真正的AI NAS!极空间私有云Z2Ultra评测
  • 新东方第三节课名言作文
  • 十月阅读_3
  • 中考_体育
  • 常见问题处理 --- phpstudy启动mysql失败
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 【密码学实战】openHiTLS PKCS12命令行程序: PKCS12文件生成与解析
  • 「CTSC2017-游戏」题解
  • vue3 vue3-form-element表单生成工具 输入框增加后缀
  • 20232402 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 掘金2025年:数字化商业浪潮下,如何选对平台与伙伴?一站式多商户商城系统推荐榜发布,多商户商城代理招募/多商户项目合伙人加盟/一站式开店代理项目加盟
  • 为医疗器械行业搭建“数字桥梁”,破解协同效率与合规难题
  • PostgreSQL 服务版
  • 20232307 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025年10月办公家具公司评价榜:基于真实数据的权威推荐清单
  • vue+antv/x6项目使用问题
  • 《程序员修炼之道:从小工到专家》前五分之一观后感
  • 坐标系与投影关系
  • 用gdb的动态视角看ret2text的实现
  • 1027随笔
  • ask_skill
  • SVN 主分支合并之通过主分支合并子分支执行流程
  • 现代c++编程体验2
  • 化繁为简:解密国标GB28181算法算力平台EasyGBS如何以兼容性与易用性赋能安防集成
  • 计算机毕业设计springboot音乐畅听系统 基于Spring Boot框架的智能音乐播放系统编写 Spring Boot驱动的音乐在线欣赏平台构建
  • vue2 封装组件使用 v-mode【el-radio,el-input】
  • P11993 [JOIST 2025] 迁移计划 题解
  • ERP和CRM、SRM、MES之间的关系,怎么理解?
  • 2025年市面上氟碳铝单板品牌、市场氟碳铝单板公司、国内氟碳铝单板生产厂家、2025年氟碳铝单板品牌、口碑好的氟碳铝单板产品综合评测