Codeforces 429B B. Working out
题目意思:
给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的更多相关文章
- CodeForces 429B Working out DP
E - Working out Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Su ...
- Codeforces 429B Working out
http://codeforces.com/contest/429/problem/B 题意:一个从左下到右上,一个从左上到右下,要求只相交一次,求整个路径和的最大值 思路:发现可以枚举交点,然后算到 ...
- Codeforces 429B Working out(递推DP)
题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的 ...
- CODEFORCES 429B 动态规划
http://codeforces.com/problemset/problem/429/B 可以参考这篇文章: http://blog.csdn.net/pure_lady/article/deta ...
- Codeforces 429B Working out:dp【枚举交点】
题目链接:http://codeforces.com/problemset/problem/429/B 题意: 给你一个n*m的网格,每个格子上有一个数字a[i][j]. 一个人从左上角走到右下角,一 ...
- CodeForces 429B Working out 动态规划
Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to loo ...
- CodeForces 429B
Working out Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Desc ...
- CodeForces 429B【dp】
题意: 在一个n*m的矩阵中有两只虫子,一只从左上角向右下角移动,另外一只从左下角向右上角移动. 要求: 1.第一只虫子每次只能向左或者向下移动一格,另外一只只能向上或者向右移动一格. 2.两只虫子的 ...
- 【Codeforces 429B】Working out
[链接] 我是链接,点我呀:) [题意] 两个人,一个人在左上角,一个人在左下角. 左上角要到右下角去 左下角要到右上角去 只能走到相邻的格子(不能往回走,即一个往右下,一个往右上走) 要求这两个人必 ...
随机推荐
- 转载pll工作模式解析
PLL共有四种工作模式,只有理解了这四种工作模式的特点,才能在设计中选用恰当的模式,完成自己设计的预期功能.这四种工作模式分别是普通模式(Normal Mode).零延迟缓冲模式(Zero Delay ...
- UGUI 分页渐变居中效果
代码相当冗长,仅作自己记录 在此分页上修改的https://blog.csdn.net/qinyuanpei/article/details/49781133 using UnityEngine;us ...
- mysql中OPTIMIZE TABLE的作用及使用
来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...
- 笔记:LIR2032 电池充电记录
笔记:LIR2032 电池充电记录 LIR2032 电池是锂电池,形状和 CR2032 一样,只不过可以充电,材料是锂离子. 一个单颗的 LIR2032 电池容量只有 40mAH,容量很小. 那么就需 ...
- 程序4-3 umask函数实例
//http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...
- 关于android方向传感器的使用
Android2.2以后 orientation sensors 就被deprecated了 官方建议用acceleration and magnetic sensor 来算 关于这个问题,CSDN上 ...
- 关于UNIDAC连接SQLITE3的心得笔记
关于查询某个SQLITE3DB的所有表单的语句: UniQuery1.SQL.Add('SELECT * FROM sqlite_master'); 关于UNIDAC提交数据: //在提交数据之前,必 ...
- 搭建JIRA汉化后乱码问题
JIRA的简体中文乱码(使用了BIG5导致) 安装完JIRA汉化后发现一部分中文显示乱码,经检查:本来应该是UTF-8编码的却显示成Big5,Big5根本不支持简体中文的! 进入JIRA数据库后找到 ...
- jenkins使用HTML Publisher Plugin插件 拉取报告样式缺失问题解决
---------------------------------------------------------临时解决方案----亲测ok 要解决该问题,方式也比较简单,就是修改Content S ...
- 【转】JMeter基础之——录制脚本
Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: ● 开源,他是一款开源的免费软件,使用它你 ...