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当中的最优解里面与当前商品进行 ...
随机推荐
- aspx代码审计-1
今天和大家分享一下aspx网站的代码审计,漏洞类型就是SQL注入和cookie欺骗. 本文作者:i春秋签约作家——非主流 今天看的cms名字叫做:XX星员工请假系统 我们首先看一下网站的目录结构: 其 ...
- URL的三类编码格式(JavaScript实现)
编码函数: 1.escape(): 不编码的字符有69个:* + - . / @ _ 0~9 a~z A~Z 而且escape对0~255以外的Unicode值进行 ...
- Echarts【1、数据过多导致显示不全分页,2、数据展示探讨分析】
var len=<c:out value="${len }"></c:out>; var dataZoom_end=null; //为空默认100%所以默认 ...
- 基于python的几种排序算法的实现
#!usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2019/3/28 10:26 # @Author : Yosef-夜雨声烦 # @Email ...
- 【笔记】AJAX+SweetAlert插件实现删除操作
[笔记]AJAX+SweetAlert插件实现删除操作 Django AJAX SweetAlert 展示 SweetAlert 插件介绍 SweetAlert 是一个 JS 插件,能够完美替代 J ...
- FJWC2019 全连
题目描述 有n个音符,第i个音符会在第i个时刻来临 令第 i 个音符的准备时间为 ti 个单位时间,如果选择去点击第 i 个音符,那么就没法点击所有到来时刻在 (i−ti ,i+ti)中的音符. ...
- solr 服务搭建
1. linux 中 安装jdk, tomcat, 2. 下载 solr-4.10.3.tgz.tgz 并解压 解压后文件夹:solr-4.10.3 3. 将 solr-4.10.3/dist 下 ...
- Windows10 安装 .Net 3.5 失败的解决方案
最近因为使用一个公司内部的工具,需要安装.Net 3.5 SP1, 却发现无论如何都安装不上,无论是通过在线和离线安装包,还是通过Windows自带的feature安装功能,每次都是会提示错误0x80 ...
- Mac 10.12安装Windows远程桌面工具Microsoft Remote Desktop
说明:之前Office自带的Windows远程桌面工具虽然简便,但是保存的服务器列表有限.而这个微软推出的自家工具可以完美解决这些问题. 下载: (链接:https://pan.baidu.com/s ...
- HTML5 五大特性
一.正则表达式: 相信大家都会非常喜欢这个特性,无须服务器端的检测,使用浏览器的本地功能就可以帮助你判断电子邮件的格式,URL,或者是电话格式,防止用户输入错误的信息,通过使用HTML5的patter ...