51Nod1084矩阵取数问题 V2

题意:

一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上。第1遍时只能向下和向右走,第2遍时只能向上和向左走。两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值。

solution:

把题目转化成两个人从左上角出发,走到右下角的奖励之和

设dp[i][j][p][q]为第一个人在(i,j)点,第二个人在(p,q)点的最大奖励之和

四重循环复杂度爆炸

我们发现i+j=p+q;

所以转化为dp[k][i][j]为走了k步,第一个人在i行,第二个人在j行,列可以用k-i,k-j表示

并可以用滚动数组优化

注意i=j时只需要加一个值

 #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,m,f[][],s[][];
int main(){
scanf("%d%d",&m,&n);
for(int i=;i<=n;++i)
for(int j=;j<=m;++j) scanf("%d",s[i]+j);
for(int k=;k<=m+n;++k) for(int i=n;i;--i) for(int j=n;j;--j)
f[i][j]=max(max(f[i][j],f[i-][j-]),max(f[i-][j],f[i][j-]))+s[i][k-i]+(i!=j?s[j][k-j]:);
printf("%d\n",f[n][n]);
}

矩阵取数问题 V2

最新文章

  1. Android Git 客户端
  2. 各种模板(part 2)
  3. Linux VFS Extended Attribute And Access Control Table
  4. 20. 最长公共子串(ToDo)[LCS]
  5. zoj Gao The Sequence
  6. SharePoint 2013 搜索体系结构
  7. SAE J1850 VPW PWM, SAE J2411 SWC, ISO 11898 CAN, SAE J1708, Chrysler CCD 接口芯片电路
  8. PHP中Get()和Post()用法详解
  9. Chapter 15_3 使用环境
  10. Mysql条件的类型决定了是否能走索引
  11. 自定义Interpolator
  12. ubuntu12.04:Mysql数据库:自动安装
  13. React Native不同设备分辨率适配和设计稿尺寸单位px的适配
  14. 使用Shell脚本对Linux系统和进程资源进行监控
  15. Linear transformations. 线性变换与矩阵的关系
  16. Altium Designer 绘图流程及快捷键
  17. 基于Helm和Operator的K8S应用管理的分享
  18. Hive的JDBC
  19. sql server 附加只有mdf的数据库文件
  20. python中强大优雅的列表推导表达式

热门文章

  1. js Indexof的用法
  2. [转载]Pytorch详解NLLLoss和CrossEntropyLoss
  3. Eclipse 动态添加web.xml
  4. vue学习(10)-vue-resource
  5. Java虚拟机内存基础、垃圾收集算法及JVM优化
  6. 8.Mapper动态代理
  7. 为何一线城市的企业更愿意选择 Spring Cloud?
  8. Hadoop_29_MapReduce_计数器应用
  9. 反编译DLL并修改DLL中的内容
  10. SVN建立分支和合并代码