hdu4374One hundred layer (DP+单调队列)
http://acm.hdu.edu.cn/showproblem.php?pid=4374
去年多校的题 今年才做 不知道这一年都干嘛去了。。
DP的思路很好想 dp[i][j] = max(dp[i-1][g]+sum[i][j]-sum[i][g-1],dp[i][j]) abs(g-j)<=t 不过复杂度是相当高的 所以呢 就出现了个单调队列 把它优化下
所谓的单调队列其实也就是一队列 始终保持着队头是最大的 若满足不了距离的条件 队头+1 队尾始终保持更新 让满足的了距离而且比队里的更大的元素进来
。。因为一初始化错了 WA了十多次啊 注意:有负数
#include <iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define N 105
#define M 10005
#define LL __int64
int a[N][M],que[M];
int dp[N][M];
int s1[N][M],s2[N][M];
int main()
{
int i,j,n,m,x,t,str,end;
while(cin>>n>>m>>x>>t)
{
memset(dp,,sizeof(dp));
memset(s1,,sizeof(s1));
memset(s2,,sizeof(s2));
for(i = ; i <= n; i++)
for(j = ; j <= m ; j++)
{
scanf("%d",&a[i][j]);
s1[i][j] = s1[i][j-]+a[i][j];
}
for(i = ; i <= n ;i++)
for(j = m ; j >= ; j--)
s2[i][j] = s2[i][j+]+a[i][j];
for(i = x ; i>=&&i>=x-t ; i--)
dp[][i] = s1[][x]-s1[][i-];
for(i = x ; i <= m&&i<=x+t ; i++)
dp[][i] = s2[][x]-s2[][i+];
for(i = ; i <= n ; i++)
{
str = ;end=;
for(j = ;j <= m ; j++)
{
while(str<end&&dp[i-][j]-s1[i][j-]>dp[i-][que[end-]]-s1[i][que[end-]-])
end--;
que[end++] = j;
dp[i][j] = max(dp[i][j],dp[i-][que[str]]-s1[i][que[str]-]+s1[i][j]);
if(j-que[str]>=t)
str++;
}
str = ;end=;
for(j = m ; j >= ; j--)
{
while(str<end&&dp[i-][j]-s2[i][j+]>dp[i-][que[end-]]-s2[i][que[end-]+])
end--;
que[end++] = j;
dp[i][j] = max(dp[i][j],dp[i-][que[str]]-s2[i][que[str]+]+s2[i][j]);
if(que[str]-j>=t)
str++;
}
}
int maxz=dp[n][];
for(i = ; i <= m ; i++)
maxz = max(maxz,dp[n][i]);
cout<<maxz<<endl;
}
return ;
}
hdu4374One hundred layer (DP+单调队列)的更多相关文章
- HDU 4374 One hundred layer(单调队列DP)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=116242#problem/E 题意:差不多就是男人勇下百层的游戏.从第一层到最 ...
- [poj3017] Cut the Sequence (DP + 单调队列优化 + 平衡树优化)
DP + 单调队列优化 + 平衡树 好题 Description Given an integer sequence { an } of length N, you are to cut the se ...
- DP+单调队列 codevs 1748 瑰丽华尔兹(还不是很懂具体的代码实现)
codevs 1748 瑰丽华尔兹 2005年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Descripti ...
- 习题:烽火传递(DP+单调队列)
烽火传递[题目描述]烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上.一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情.在某两座城市之间有n个烽火台,每个烽火台 ...
- (noip模拟二十一)【BZOJ2500】幸福的道路-树形DP+单调队列
Description 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一同晨练来享受在一起的时光. 他们画出了晨练路线的草图,眼尖的小T发现可以用树来描绘这个草图. ...
- 3622 假期(DP+单调队列优化)
3622 假期 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题目描述 Description 经过几个月辛勤的工作,FJ决定让奶牛放假.假期可以在1-N天内任意选择 ...
- HDU 4374 One hundred layer DP的单调队列优化
One hundred layer Problem Description Now there is a game called the new man down 100th floor. The ...
- bzoj2500: 幸福的道路(树形dp+单调队列)
好题.. 先找出每个节点的树上最长路 由树形DP完成 节点x,设其最长路的子节点为y 对于y的最长路,有向上和向下两种情况: down:y向子节点的最长路g[y][0] up:x的次长路的g[x][1 ...
- URAL 1427. SMS(DP+单调队列)
题目链接 我用的比较传统的办法...单调队列优化了一下,写的有点搓,不管怎样过了...两个单调队列,存两个东西,预处理一个标记数组存... #include <iostream> #inc ...
随机推荐
- leetcode problem 37 -- Sudoku Solver
解决数独 Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated ...
- CentOS 7 install LNMP
CentOS 7 install LNMP 关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教 ...
- yiic创建YII应用 "php.exe"不是内部或外部命令 解决办法
第一步:运行CMD命令. 第二步:进入Yiic文件的目录 (例如在D盘里面 D:/yii/framework) 第三步:D:\yii\framework>yiic webapp D: ...
- lnmp 虚拟主机配置及重写
lnmp安装与调试,请看 http://www.cnblogs.com/lin3615/p/4376224.html 虚拟主机的配置编辑nginx配置文件 nginx.conf此为主配置文件 vim ...
- 如何去掉 Discuz标题后缀power by discuz
如何去掉 Discuz标题后缀power by discuz 打开如下文件 template/default/common/header_common.htm/php 找到如下代码 $navtitle ...
- PHP+Ajax 异步通讯注册验证
HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- eclipse import的项目报autowired cannot be resolved to a type的错误
eclipse报autowired cannot be resolved to a type的错误,一般情况是依赖的JDK或者jar包有问题,检查build path可以排查文件,我今天遇到这个情况, ...
- Android开发第1篇 - Android开发环境搭建
归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Dev ...
- Linux中的文件上传下载
1.部署ftp服务器 2.安装bypy python 客户端(还没试过,先记录一下) https://www.v2ex.com/t/124886
- Ubuntu启动停止在checking battery state...
Ubuntu在“checking battery state...”处停止了,出现这种现象的原因可能有很多种.笔者遇到的是其中的一种. 情景描述: 笔者此前将Ubuntu的图形启动方式修改为了字符界面 ...