题目意思:

给n*m的矩阵,每个格子有个数,A从(1,1)出发只能向下或右走,终点为(n,m),B从(n,1)出发只能向上或右走,终点为(1,m)。两个人的速度不一样,走到的格子可以获的该格子的数,两人相遇的格子上的数两个人都不能拿。求A和B能拿到的数的总和的最大值。

n,m<=1000

解题思路:

先预处理出每个格子到四个角落格子的路径最大数值,

然后枚举两个人相遇的交点格子,枚举A、B的进来和出去方式,求最大值即可。

注意边界情况。

#include<stdio.h>
#include<algorithm>
using namespace std;
const int MAX = ;
int ma[MAX][MAX];
int Mrd[MAX][MAX],Mur[MAX][MAX],Mld[MAX][MAX],Mul[MAX][MAX];
int n,m;
int i,j;
void print(long long a[][MAX])
{
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
printf("%I64d ",a[i][j]);
}
printf("\n");
}
printf("\n");
}
void Init()
{
for(i=;i<=m;i++)
Mrd[][i]=ma[][i]+Mrd[][i-];
for(j=;j<=n;j++)
Mrd[j][]=ma[j][]+Mrd[j-][];
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
Mrd[i][j]=ma[i][j]+max(Mrd[i-][j],Mrd[i][j-]);
//printf("%d ",Mrd[][]);
}
} for(i=;i<=m;i++)
Mur[n][i]=ma[n][i]+Mur[n][i-];
for(j=n;j>=;j--)
Mur[j][]=ma[j][]+Mur[j+][];
for(i=n-;i>=;i--)
{
for(j=;j<=m;j++)
{
Mur[i][j]=ma[i][j]+max(Mur[i+][j],Mur[i][j-]);
}
} for(i=m;i>=;i--)
Mld[][i]=ma[][i]+Mld[][i+];
for(j=;j<=n;j++)
Mld[j][m]=ma[j][m]+Mld[j-][m];
for(i=;i<=n;i++)
{
for(j=m-;j>=;j--)
{
Mld[i][j]=ma[i][j]+max(Mld[i][j+],Mld[i-][j]);
}
} for(i=m;i>=;i--)
Mul[n][i]=ma[n][i]+Mul[n][i+];
for(j=n;j>=;j--)
Mul[j][m]=ma[j][m]+Mul[j+][m];
for(i=n-;i>=;i--)
{
for(j=m-;j>=;j--)
{
Mul[i][j]=ma[i][j]+max(Mul[i+][j],Mul[i][j+]);
}
}
}
int main()
{
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=;i<=n;i++)
for(j=;j<=m;j++)
scanf("%d",&ma[i][j]);
Init();
//print(Mrd);
//print(Mur);
//print(Mld);
//print(Mul);
int ans=,tmp;
for(i=;i<n;i++)
{
for(j=;j<m;j++)
{
tmp=Mrd[i-][j]+Mur[i][j-]+Mld[i][j+]+Mul[i+][j];
ans=max(tmp,ans);
tmp=Mrd[i][j-]+Mur[i+][j]+Mld[i-][j]+Mul[i][j+];
ans=max(tmp,ans);
}
}
printf("%d\n",ans);
}
return ;
}

Codeforces 429B B. Working out的更多相关文章

  1. CodeForces 429B Working out DP

    E - Working out Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Su ...

  2. Codeforces 429B Working out

    http://codeforces.com/contest/429/problem/B 题意:一个从左下到右上,一个从左上到右下,要求只相交一次,求整个路径和的最大值 思路:发现可以枚举交点,然后算到 ...

  3. Codeforces 429B Working out(递推DP)

    题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的 ...

  4. CODEFORCES 429B 动态规划

    http://codeforces.com/problemset/problem/429/B 可以参考这篇文章: http://blog.csdn.net/pure_lady/article/deta ...

  5. Codeforces 429B Working out:dp【枚举交点】

    题目链接:http://codeforces.com/problemset/problem/429/B 题意: 给你一个n*m的网格,每个格子上有一个数字a[i][j]. 一个人从左上角走到右下角,一 ...

  6. CodeForces 429B Working out 动态规划

    Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to loo ...

  7. CodeForces 429B

    Working out Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Desc ...

  8. CodeForces 429B【dp】

    题意: 在一个n*m的矩阵中有两只虫子,一只从左上角向右下角移动,另外一只从左下角向右上角移动. 要求: 1.第一只虫子每次只能向左或者向下移动一格,另外一只只能向上或者向右移动一格. 2.两只虫子的 ...

  9. 【Codeforces 429B】Working out

    [链接] 我是链接,点我呀:) [题意] 两个人,一个人在左上角,一个人在左下角. 左上角要到右下角去 左下角要到右上角去 只能走到相邻的格子(不能往回走,即一个往右下,一个往右上走) 要求这两个人必 ...

随机推荐

  1. 使用 ip 进行系统网络配置

    检查是否有安装iproute工具 rpm -qa | grep iproute 查看所有可用接口 ip link show 启用或禁用接口 ip link set down eth1 ip link ...

  2. 开发沉思录 - 记大数据平台的一次 BUG井喷

    研究REST提交重启:终于提交成功了,首先一个错误:地址IP地址的http://hdp0:8080/api/v1/clusters/HDP/requests ,被我错误写成了request,当误了大量 ...

  3. mysql数据库备份与还原(转)

    MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Linux下MySQL的备份与还原 1.1 备份 [root@localhost ~]# cd /var/ ...

  4. 让Eclipse的TomcatPlugin支持Tomcat 8.x

     使用tomcat插件启动项目的优势: 1.TomcatPlugin是一个免重启的开发插件,原始的Servers方式启动tomcat项目,修改xxx.ftl  或者 xxx.jsp 文件后需要重启to ...

  5. unittest框架,调用函数类 和 调用函数外的 方法

  6. 家谱处理(30 分)(字符串的处理substr)

    家谱处理(30 分) 人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究.实验中,使用计算机处理家谱.为了实现这个目的,研究人员将家谱转换为文本文件.下面为家谱文本文件的实例: Jo ...

  7. mongdb与mysql的联系和区别

    与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值. ...

  8. 自定义条件判断两对象相等Equals的方法

    自定义两对象是否相等方法,必须用到GetHashCode方法,如 public class AirspaceCompareByUUID : IEqualityComparer<AIRSPACE_ ...

  9. 程序实现DataGrid过滤设置

    给gdv_pro.ActiveFilterString赋值就能直接控制DataGrid过滤 gdv_pro.ActiveFilterString语法: 最简单方式:gdv_pro.ActiveFilt ...

  10. BurpSuite—-Spider模块(蜘蛛爬行)

    一.简介 Burp Spider 是一个映射 web 应用程序的工具.它使用多种智能技术对一个应用程序的内容和功能进行全面的清查. Burp Spider 通过跟踪 HTML 和 JavaScript ...