CODEFORCES 429B 动态规划
http://codeforces.com/problemset/problem/429/B
可以参考这篇文章:
http://blog.csdn.net/pure_lady/article/details/46764839
因为有断点,所以可以预处理四个顶点到任意点的距离最大值,通过拼接得到断点后的距离
然后就是枚举断点的情况,发现断点不可能在边缘,就可以开始写了
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
using namespace std; #define MEM(a,b) memset(a,b,sizeof(a))
#define pf printf
#define sf scanf
#define debug printf("!/m")
#define L 1050
#define MAX(a,b) a>b?a:b
#define blank pf("\n") int gym[L][L];
int dp1[L][L];
int dp2[L][L];
int dp3[L][L];
int dp4[L][L]; int main()
{
int n,m,i,j;
sf("%d%d",&n,&m);
for(i = ;i<=n;i++)
{
for(j = ;j<=m;j++)
sf("%d",&gym[i][j]);
} MEM(dp1,);
MEM(dp2,);
MEM(dp3,);
MEM(dp4,); //左上
for(i = ;i<=n;i++)
{
//左上
for(j = ;j<=m;j++)
{
int tmp = MAX(dp1[i-][j],dp1[i][j-]);
dp1[i][j] = tmp+gym[i][j];
}
//右上
for(j = m;j>=;j--)
{
int tmp = MAX(dp3[i-][j],dp3[i][j+]);
dp3[i][j] = tmp+gym[i][j];
}
} for(i = n;i>=;i--)
{
//左下
for(j = ;j<=m;j++)
{
int tmp = MAX(dp2[i+][j],dp2[i][j-]);
dp2[i][j] = tmp+gym[i][j];
}
//右下
for(j = m;j>=;j--)
{
int tmp = MAX(dp4[i+][j],dp4[i][j+]);
dp4[i][j] = tmp+gym[i][j];
}
} int max=; for(i = ;i<=n-;i++)
{
for(j = ;j<=m-;j++)
{
int tmp = MAX(dp1[i][j-]+dp2[i+][j]+dp3[i-][j]+dp4[i][j+],dp1[i-][j]+dp2[i][j-]+dp3[i][j+]+dp4[i+][j]);
if(tmp>max)
max = tmp;
}
} pf("%d\n",max); return ;
}
/*
3 3
1 2 3
4 5 6
7 8 9
*/
CODEFORCES 429B 动态规划的更多相关文章
- Codeforces 837D 动态规划
Codeforces 837D 动态规划 传送门:https://codeforces.com/contest/837/problem/D 题意: 给你n个数,问你从这n个数中取出k个数,这k个数的乘 ...
- codeforces 1183H 动态规划
codeforces 1183H 动态规划 传送门:https://codeforces.com/contest/1183/problem/H 题意: 给你一串长度为n的字符串,你需要寻找出他的最长的 ...
- CodeForces 429B Working out DP
E - Working out Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Su ...
- 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
http://codeforces.com/contest/429/problem/B 题意:一个从左下到右上,一个从左上到右下,要求只相交一次,求整个路径和的最大值 思路:发现可以枚举交点,然后算到 ...
- Educational Codeforces Round 21 Problem E(Codeforces 808E) - 动态规划 - 贪心
After several latest reforms many tourists are planning to visit Berland, and Berland people underst ...
- Codeforces 429B Working out(递推DP)
题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的 ...
- Codeforces 429B Working out:dp【枚举交点】
题目链接:http://codeforces.com/problemset/problem/429/B 题意: 给你一个n*m的网格,每个格子上有一个数字a[i][j]. 一个人从左上角走到右下角,一 ...
- CodeForces 366C 动态规划 转化背包思想
这道题目昨晚比赛没做出来,昨晚隐约觉得就是个动态规划,但是没想到怎么DP,今天想了一下,突然有个点子,即局部最优子结构为 1-j,j<i,遍历i,每次从所有的1到j当中的最优解里面与当前商品进行 ...
随机推荐
- NOIp2018提高组游记
Day1 T1 积木大赛 NOIp2013D2T1.....看到的时候我还以为我记错了,以为原题是一次可以随便加,这题只能加一,出考场后查了下发现一模一样. #include <iostream ...
- [Swift实际操作]七、常见概念-(14)使用UIColor设置界面组件的颜色属性
打开移动应用程序,不可避免的需要和颜色打交道.本文将为你演示颜色对象的使用. 首先导入需要使用到的界面工具框架 import UIKit 通过UIColor的属性,可以获得橙色.右侧的实时反馈区,显示 ...
- 使用python 模仿mybinlog 命令 二进制分析mysql binlog
出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...
- QuantLib 金融计算——数学工具之随机数发生器
目录 QuantLib 金融计算--数学工具之随机数发生器 概述 伪随机数 正态分布(伪)随机数 拟随机数 HaltonRsg SobolRsg 两类随机数的收敛性比较 如果未做特别说明,文中的程序都 ...
- 牛客Wannafly挑战赛26E 蚂蚁开会(树链剖分+线段树)
传送门 题面描述 一颗n个节点的树,m次操作,有点权(该节点蚂蚁个数)和边权(相邻节点的距离). 三种操作: 操作1:1 i x将节点i的点权修改为x.(1 <= i <= n; 1 &l ...
- 蓝桥杯-学霸的迷宫(BFS+记录操作)
算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡 ...
- (转)Mysql主从复制搭建及详解
http://www.cnblogs.com/kevingrace/p/6256603.html---------Mysql主从同步(1)-主从/主主环境部署梳理 原文:http://blog.csd ...
- typescript 入门
为什么要使用typescript? 出现拼写错误,可以立即指出错误. 出现模块引入错误,立即指出错误. 出现函数.变量类型错误,立即指出错误. 在react组件中制定好了基本的props和state之 ...
- Android多媒体技术之视频播放
1.Android中视频播放方式 surfaceView+MediaPlayer,通过MediaPlayer来控制视频的播放.暂停.进度等: 使用VideoView 来播放,这个类其实也是继承了Sur ...
- 基于libcurl实现REST风格http/https的get和post
c/c++开发中经常要用到http/https协议,直接使用socket工作量很大,要是使用socket实现https,那更不可思议,开源的c/c++的http客户端框架,libcurl是首选,而且也 ...