DP+单调队列优化 E One hundred layer

题意:n*m的矩形,从第一层x位置往下走,每一层都可以往左或往右移动最多k步再往下走,问走到n层时所走路径的最大值.

分析:定义,,注意到max里的东西与j无关,可以定义单调队列维护的最值,注意t的约束条件.往右的情况类似.

#include <bits/stdc++.h>

const int N = 1e2 + 5;
const int M = 1e4 + 5;
const int INF = 0x3f3f3f3f;
int dp[N][M];
int a[N][M];
int sum[M];
int n, m, x, t;
struct Node {
int v, id;
}; int main() {
while (scanf ("%d%d%d%d", &n, &m, &x, &t) == 4) {
for (int i=1; i<=n; ++i) {
for (int j=1; j<=m; ++j) {
scanf ("%d", &a[i][j]);
}
}
std::deque<Node> dque;
memset (dp, -INF, sizeof (dp));
dp[1][x] = a[1][x];
for (int i=x-1; i>=1 && i>=x-t; --i) {
dp[1][i] = dp[1][i+1] + a[1][i];
}
for (int i=x+1; i<=m && i<=x+t; ++i) {
dp[1][i] = dp[1][i-1] + a[1][i];
}
for (int i=2; i<=n; ++i) {
sum[0] = 0;
dque.clear ();
for (int j=1; j<=m; ++j) {
sum[j] = sum[j-1] + a[i][j];
while (!dque.empty () && dque.front ().id < j - t) {
dque.pop_front ();
}
int tv = dp[i-1][j] - sum[j-1];
while (!dque.empty () && dque.back ().v < tv) {
dque.pop_back ();
}
dque.push_back ((Node) {tv, j});
dp[i][j] = dque.front ().v + sum[j];
}
sum[m+1] = 0;
dque.clear ();
for (int j=m; j>=1; --j) {
sum[j] = sum[j+1] + a[i][j];
while (!dque.empty () && dque.front ().id > j + t) {
dque.pop_front ();
}
int tv = dp[i-1][j] - sum[j+1];
while (!dque.empty () && dque.back ().v < tv) {
dque.pop_back ();
}
dque.push_back ((Node) {tv, j});
dp[i][j] = std::max (dp[i][j], dque.front ().v + sum[j]);
}
}
int ans = dp[n][1];
for (int i=2; i<=m; ++i) {
ans = std::max (ans, dp[n][i]);
}
printf ("%d\n", ans);
}
return 0;
}

  

2012 Multi-University #8的更多相关文章

  1. 针对于网络安全领域中基于PCAP流量的数据集

    网络安全领域中基于PCAP流量的数据集 MAWI Working Group Traffic Archive URL:http://mawi.wide.ad.jp/mawi/ CIC dataset ...

  2. Parallel NetCDF 简介

    Parallel NetCDF API 所有C接口前加ncmpi前缀,Fortran接口前加nfmpi前缀 函数返回整数 NetCDF 状态变量 1. Variable and Parameter T ...

  3. 视觉中的深度学习方法CVPR 2012 Tutorial Deep Learning Methods for Vision

    Deep Learning Methods for Vision CVPR 2012 Tutorial  9:00am-5:30pm, Sunday June 17th, Ballroom D (Fu ...

  4. Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了

    作者:Glowin链接:https://zhuanlan.zhihu.com/p/22881223来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:Google ...

  5. SQL Server 2012 内存管理 (memory management) 改进

    SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化. 一.内存分配器的变化 SQL Server 2012以前的版本,比如SQL Server 2008 R2等, 有sing ...

  6. 西安理工大学 李爱民 Xi'an University of Technology, Aimin Li

    李爱民-西安理工大学计算机科学与工程学院 ● 简介(Introduction)-> 李爱民(Aimin Li),男,湖北随州人,西安电子科学大学博士(PhD),中共党员.中国计算机学会会员,CS ...

  7. 微软BI SSRS 2012 Metro UI Win 8 风格的报表课程案例全展示

    开篇介绍 微软BI SSRS 2012 Metro UI 高端报表视频教程 (http://www.hellobi.com/course/15)课程从2014年6月开始准备,于2014年9月在 天善B ...

  8. Online handwriting recognition using multi convolution neural networks

    w可以考虑从计算机的“机械性.重复性”特征去设计“低效的”算法. https://www.codeproject.com/articles/523074/webcontrols/ Online han ...

  9. Patch multi versions of windows via Power shell

    Patch multi versions of windows via Power shell $version = Get-WmiObject -Class Win32_OperatingSyste ...

  10. Weblogic多数据源(Multi Data Sources)应用实践

    原创 2012年03月29日 10:55:28 标签: weblogic / 数据库 / 负载均衡 / 数据中心 / jdbc / 应用服务器   大型系统在进行数据库部署时,常常会分为主数据应用中心 ...

随机推荐

  1. 介绍编译的less的两种IDE工具

    介绍编译的less的两种IDE工具 现在css预编译越来越普及了,著名的有less.sass.stylus等等等等.功能上基本上都是大同小异.这些个玩意儿主要表达的意思就是:"像编程一样的编 ...

  2. visio二次开发初始化问题

    (转发请注明来源:http://www.cnblogs.com/EminemJK/) 问题: axDrawingControl1初始化失败((System.ComponentModel.ISuppor ...

  3. JS高级群的日常

    北京-z兄*10031*33) 2015/6/5 13:38:01北京-逍遥君武*5611*7) 2015/6/5 13:3*:082上海-goesby<woshixuleijava@****. ...

  4. Shell入门教程:Shell的基本结构

    shell程序的基本组成结构 shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本 ...

  5. idea之resource配置

    1.问题 在idea中配置springmvc项目,用hibernate管理数据库,在web.xml中作如下配置: <!--配置hibernate数据库连接--> <listener& ...

  6. C和指针 第十二章 使用结构和指针

    链表是一种常用的数据结构,每个节点通过链或者指针链接在一起,程序通过间接指针访问链表中的节点. typedef struct Node { //指向下一个节点的指针 struct Node *next ...

  7. 摄像头视频捕捉(简单通用--通过IsampleGrabberCB实现)

    前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用Direct ...

  8. dex文件格式二

    一. dex文件头 (1) magic value 在DexFile.c   dexFileParse函数中 会先检查magic opt 啥是magic opt呢? 我们刚刚从cache目录拷贝出来的 ...

  9. poj2236_并查集_Wireless Network

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 24497   Accepted: 102 ...

  10. poj1182食物链_并查集_挑战程序设计竞赛例题

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65534   Accepted: 19321 Description ...