2012 Multi-University #8
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的更多相关文章
- 针对于网络安全领域中基于PCAP流量的数据集
网络安全领域中基于PCAP流量的数据集 MAWI Working Group Traffic Archive URL:http://mawi.wide.ad.jp/mawi/ CIC dataset ...
- Parallel NetCDF 简介
Parallel NetCDF API 所有C接口前加ncmpi前缀,Fortran接口前加nfmpi前缀 函数返回整数 NetCDF 状态变量 1. Variable and Parameter T ...
- 视觉中的深度学习方法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 ...
- Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
作者:Glowin链接:https://zhuanlan.zhihu.com/p/22881223来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:Google ...
- SQL Server 2012 内存管理 (memory management) 改进
SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化. 一.内存分配器的变化 SQL Server 2012以前的版本,比如SQL Server 2008 R2等, 有sing ...
- 西安理工大学 李爱民 Xi'an University of Technology, Aimin Li
李爱民-西安理工大学计算机科学与工程学院 ● 简介(Introduction)-> 李爱民(Aimin Li),男,湖北随州人,西安电子科学大学博士(PhD),中共党员.中国计算机学会会员,CS ...
- 微软BI SSRS 2012 Metro UI Win 8 风格的报表课程案例全展示
开篇介绍 微软BI SSRS 2012 Metro UI 高端报表视频教程 (http://www.hellobi.com/course/15)课程从2014年6月开始准备,于2014年9月在 天善B ...
- Online handwriting recognition using multi convolution neural networks
w可以考虑从计算机的“机械性.重复性”特征去设计“低效的”算法. https://www.codeproject.com/articles/523074/webcontrols/ Online han ...
- Patch multi versions of windows via Power shell
Patch multi versions of windows via Power shell $version = Get-WmiObject -Class Win32_OperatingSyste ...
- Weblogic多数据源(Multi Data Sources)应用实践
原创 2012年03月29日 10:55:28 标签: weblogic / 数据库 / 负载均衡 / 数据中心 / jdbc / 应用服务器 大型系统在进行数据库部署时,常常会分为主数据应用中心 ...
随机推荐
- session 和 cookie区别
1.存在位置cookie是储存在客服端,session是存在服务器端的文件系统/数据库/memcache 2.安全性 session是储存在服务器端,安全性高一些, 3.网络传输量 cookie通过 ...
- Python Day3
一.set集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 # 创建数值集合 list_1 = ...
- elasticsearch 优化
ES 手册 如何提高ES的性能 不要返回较大的结果集 ES是设计成一个搜索引擎的,只擅长返回匹配查询较少文档,如果需要返回非常多的文档需要使用Scroll. 避免稀疏 因为ES是基于Lucene来索引 ...
- 忍不住记录下小型的CMDB系统
- struts2的DevMode模式
在实际应用开发或者是产品部署的时候,对应着两种模式: 1.开发模式(devMode),此时,DevMode=true 2.产品模式(proMode),此时,DevMode=false 在一些服务器或者 ...
- 浅谈Android中Activity的生命周期
引言 我想对于Android开发人员来说,Activity是再熟悉不过了,今天我们就来探讨下Activity的生命周期.熟悉的掌握Activity对于开发健壮的Android应用程序来说至关重要.下面 ...
- spring-quartz.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://ww ...
- AJAX 与 MySQL
AJAX 与 MySQL AJAX 可用来与数据库进行交互式通信. AJAX 数据库实例 下面的实例将演示网页如何通过 AJAX 从数据库读取信息: 实例 Select a person: P ...
- Python_DB_Api
python DB API 内容 建立连接connection 数据库交互对象cursor 数据库异常类exception 流程 创建connection 获取cursor 执行查询.执行命令.获取数 ...
- 【总结2】PhpStorm利用XDebug调试PHP技巧
在写完 [总结1]PhpStorm配置XDebug(远程)调试PHP 后,发现PhpStorm调试PHP还有一个技巧,如下图所示: 路径:File -> Settings -> Langu ...