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当中的最优解里面与当前商品进行 ...
随机推荐
- 解决修改完系统默认python版本后yum不可用的问题!!!!!!
文章转自: http://www.linuxidc.com/Linux/2013-05/84727.htm #vi /usr/bin/yum 将文件头部的: #!/usr/bin/python 改为: ...
- luncene 查询字符串的解析-QueryParser类
搜索流程中的第二步就是构建一个Query.下面就来介绍Query及其构建. 当用户输入一个关键字,搜索引擎接收到后,并不是立刻就将它放入后台开始进行关键字的检索,而应当首先对这个关键字进行一定的分析和 ...
- Jetty实战之 嵌入式Jetty运行web app
Jetty实战之 嵌入式Jetty运行web app 博客分类: 应用服务器 jettywar 转载地址:http://blog.csdn.net/kongxx/article/details/72 ...
- vue封装插件并发布到npm上
vue封装插件并发布到npm上 项目初始化 首先,要创建项目,封装vue的插件用webpack-simple很合适,vue init webpack-simple 项目名称此命令创建我们的项目的目录, ...
- apache 子域名自动与子域名同名的目录绑定
假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/,在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b ...
- Access network
1 State transfering A•Mobility:开机-搜寻PLMN/CELL来发现自己在网络中的位置•Attach request•Auth request•Auth res ...
- ospf基础理论
OSPF简介 OSPF(Open Shortest Path First 开放式最短路径优先)协议是IETF为IP网络开发的IGP路由选择协议.它是一种典型的链路状态(link-state)路由协议. ...
- Mac下开机启动rc.common不生效的问题
经过测试在10.12.6下/etc/rc.common不生效,原因是已经被launchd守护进程所取代,虽然保留着这个文件,但是基本是不起作用的. 如果要开机启动请直接使用launchd进行操作. 同 ...
- 【es6】变量解构赋值
1.数组解构赋值 let [a,b,c]=[1,2,3];//数组解构赋值,注意:左右两边格式需一致 let [a,b]=[1,2,3];//不完全解构,取位置靠前的值 let [a=1,b]=[un ...
- 关于chrome下的bug
最近看了大神的一篇文章,于是尝试了一下里面说的bug以及修复 1.Chrome下absolute绝对定位元素部分display属性值不渲染bug 首先还原一下bug.. ff下的下效果 点击按钮后的效 ...