/*
两种做法:一是暴力dp[i][j][k][l] 二是以走的步数k作为阶段,
dp[k][i][j]表示走到第k步,第一个人横坐标走到i,第二个人横坐标走到j
可以以此推出第第一个人的坐标为[i,k-i+1],第二个人坐标[j,k-j+1]
状态转移方程
dp[k][i][j]=max(dp[k-1][i][j],dp[k-1][i-1][j],dp[k-1][i][j-1],dp[k-1][i-1][j-1])+
mp[i][k-i+1]+mp[j][k-j+1]
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 205 int mp[maxn][maxn],dp[maxn][maxn][maxn],n,m; int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&mp[i][j]);
memset(dp,,sizeof dp);
dp[][][]=mp[][];
for(int k=;k<=m+n-;k++){//从第二步开始计算
int mm=min(k,m);//最远可以到的横坐标
for(int i=;i<=mm;i++)
for(int j=;j<=mm;j++){
int max1=max(dp[k-][i][j],dp[k-][i-][j]);
int max2=max(dp[k-][i-][j],dp[k-][i-][j-]);
if(i==j)
dp[k][i][j]=max(max1,max2)+mp[j][k-j+];
else dp[k][i][j]=max(max1,max2)+mp[i][k-i+]+mp[j][k-j+];
}
}
printf("%d\n",dp[m+n-][m][m]);
return ;
}

双线程 线性dp 传纸条的更多相关文章

  1. 四维dp,传纸条,方格取数

    四维dp例题 四维dp便是维护4个状态的dp方式 拿题来说吧. 1. 洛谷P1004 方格取数 #include<iostream> #include<cstdio> usin ...

  2. [洛谷P1006] 传纸条

    双线程DP的常识:DP的阶段问题:多阶段决策问题 传送门:$>here<$ 题意 n*m的矩阵里,从左上角走到右下角(只能往右或往下),再从右下角走回左上角(只能往左或往上).其中不能重复 ...

  3. 传纸条(一)(双线程dp)

    传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...

  4. CH5103 传纸条【线性dp】

    5103 传纸条 0x50「动态规划」例题 描述 给定一个 N*M 的矩阵A,每个格子中有一个整数.现在需要找到两条从左上角 (1,1) 到右下角 (N,M) 的路径,路径上的每一步只能向右或向下走. ...

  5. NOIP2008传纸条[DP]

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...

  6. [Swust OJ 1084]--Mzx0821月赛系列之情书(双线程dp)

    题目链接:http://acm.swust.edu.cn/problem/1084/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  7. 传纸条---(dp)

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mmm行nnn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了. ...

  8. TYVJ 1011 NOIP 2008&&NOIP 2000 传纸条&&方格取数 Label:多线程dp

    做题记录:2016-08-15 15:47:07 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...

  9. nyoj61 传纸条(一) dp

    思路:两人一个从左上角出发只能向右和向下,另一人从右下角出发只能向左和向上,可以看做两人都是从右下角出发,且只能向左和向上传纸条,并且两条路径不会相交,因为一个人只会传一次,那么随便画一个图就能知道两 ...

随机推荐

  1. Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1

    Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前分享过关于离线方式部署Cloudera ...

  2. Linux上安装Perl模块的两种方法

    Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装.第一种方法是从CPAN上下载  您需要的模块,手工编译.安装.第二种方法是联上internet,使用一个叫做CPAN的模块自动完 ...

  3. Java编程思想 学习笔记2

    二.一切都是对象 1.用引用操纵对象 在Java中,一切都被视为对象,但操纵的标识符实际上是对象的一个“引用”.可以将这想象成遥控器(引用)来操纵电视机(对象).另外,没有电视机,遥控器也可以单独存在 ...

  4. 八皇后问题动态演示_Qt5实现

    //核心代码如下 //Queen--放置皇后 #include "queue.h" queue::queue() { *; ; this->board = new bool[ ...

  5. bootstrap中模态框的使用

    1.代码: <%--登录模态框--%> <li><a href="#" data-toggle="modal" data-targ ...

  6. VS2015(Xamarin)开发安卓WebApp笔记

    有关WebApp的开发,大多数人都用了第三方框架,如Cordova等.我这里没有用到这类框架,而是新建了一个WebView嵌入Assets(本地资源)来完成这个App,由于第一个练习App希望对初学者 ...

  7. Lamport Logical Clock 学习

    1,导论 ①如何在分布式环境下定义系统中所有事件的发生顺序?②分布式环境下多个进程竞争资源时如何互斥?③什么是偏序,偏序的作用是什么,有什么不足?④什么是全序,全序的作用是什么,有什么不足?⑤为什么需 ...

  8. Javaweb学习笔记——(二)——————CSS概述,进入JavaScript

    day02day01内容回顾 1.html操作思想 **使用标签把要操作的数据包起来,通过修改标签的属性值来是实现标签内数据样式的变化 ***<font size="5"&g ...

  9. Linux 查看服务进程运行时间

    Linux  查询服务进程的 运行时间 查看运行时间 ps -eo pid,lstart,etime | grep pid ps -eo pid,lstart,etime | grep 1713 # ...

  10. JavaScript之Array/数组小结

    MDN-Array的属性/方法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Arr ...