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;
}
转载于:https://www.cnblogs.com/Running-Time/p/5497935.html
2012 Multi-University #8相关推荐
- 钮扣电池电压电量_纽扣厂
钮扣电池电压电量 S. is a designer and works at the button factory. Despite its scary look, S. goes there eve ...
- 学术与应用的碰撞,精准医疗和生物医药大数据的盛宴
2016年12月8-10日,BDTC 2016 中国大数据技术大会将在北京新云南皇冠假日酒店隆重举办.本届BDTC 2016为期三天,聚焦行业最佳实践,数据与应用的深度融合,关注热门技术在行业中的实践 ...
- 程序员求职之道(《程序员面试笔试宝典》)之面试笔试技巧?
目录(?)[-] 不打无准备之仗 如何获取求职信息 如何制作一份受用人单位青睐的简历 如何高效地网申简历 从容应对 如何进行自我介绍 你对我们公司有什么了解 如何应对自己不会回答的问题 签约这点事 风 ...
- 程序员求职攻略(《程序员面试笔试宝典》)之面试笔试技巧?
不是看了本C语言编程书籍,就可以说精通C语言,会写一句hello world,就可以自称程序员,程序员是一种职业,更是一种精神.他们天资聪颖,不拘小节:他们个性十足,幽默风趣:他们工作努力,任劳任怨. ...
- 宾夕法尼亚的第一台计算机,宾夕法尼亚大学博士申请 - 世界上第一台计算机诞生与美国宾夕法尼亚大学,这台计算机是什么,只能算数字吗?(也就是几加几几乘几什...
宾夕法尼亚大学博士申请 - 世界上第一台计算机诞生与美国宾夕法尼亚大学,这台计算机是什么,只能算数字吗?(也就是几加几几乘几什,1. 世界上第一台计算机诞生与美国宾夕法尼亚大学,这台计算机是什么,只能 ...
- 网络流量数据集(PCAP)
汇总 https://www.test404.com/post-1494.html 部分转自https://blog.csdn.net/answer3lin/article/details/86480 ...
- 计算机应用技术专业英语作文,计算机应用专业英语简历范文
计算机应用专业英语简历范文 Personal profiles: Name: YJBYS Gender: Female Nationality: Han Birthplace: Shandong Da ...
- [我们是这样理解语言的-2]统计语言模型
[我们是这样理解语言的-2]统计语言模型 2015/02/28 搜索技术.自然语言处理 LM.n-gram.NLP.统计语言模型.自然语言处理.语言模型 fandywang 记得最早学习语言模型是在研 ...
- 韦森:哈耶克大战凯恩斯的论战(一)
序言 <通论>.<通往奴役之路>,这些思想的两位奠定者-约翰·梅纳德·凯恩斯和弗里德里希·冯·哈耶克,隔着一道巨大的深渊,凝视着彼此.这道深渊,拉开了我们这个时代最轰轰烈烈的经 ...
- 那一年:哈耶克大战凯恩斯
序言 <通论>.<通往奴役之路>,这些思想的两位奠定者-约翰·梅纳德·凯恩斯和弗里德里希·冯·哈耶克,隔着一道巨大的深渊,凝视着彼此.这道深渊,拉开了我们这个时代最轰轰烈烈的经 ...
最新文章
- 是时候开始使用JavaScript严格模式了怎样启用javascri
- 卸载或重新安装Redis集群
- 006 技能数组分析和代码编写
- 生物信息之ME, HMM, MEMM, CRF
- H桥电机驱动原理与应用
- CodeForces - 1141CPolycarp Restores Permutation搜索+剪枝
- linux系统部署war包,查看tomcat日志
- websphere一直安装部署_WebSphere集群安装配置及部署应用说明
- codeforces679C Bear and Square Grid(dfs优化)
- PostgreSQL备份之omniPITR
- 初识Flink广播变量broadcast
- 观察者模式-对象行为型
- Maven搭建多模块企业级项目+SSM框架搭建
- java 编写无状态代码,一种真正实现RMI无状态化的方法续:JVM源码修改步骤
- linux 卡在grub_关于linux开机进入grub问题的解决方法
- python help帮助文档
- 打开一个php网页出现2个ip,php根据ip地址查地区
- 地球人来源2【地底爬虫人访谈】
- 【单例模式、多例模式、工厂模式和枚举】
- 大学网课查题接口平台
热门文章
- Struts2 拦截器: 拦截器与过滤器区别
- 线段树专辑——pku 3667 Hotel
- 企业生产经营相关英文及缩写之(11)--Genenic 普通书写
- 2013年国家计算机一级考试试题,2013年计算机一级的考试试题.doc
- matlab z变换离散化_用C++编写一个简单的光栅化渲染器:3D篇
- php7过滤,PHP7过滤unserialize()
- python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10
- android sdk 2.9.5.0,如何找到问题Android SDK 3.0错误:(9,5)错误:资源android:attr/colorError未找到...
- mac 杀掉占用某个端口的进程
- Cannot access repo1 (http://repo1.maven.org/maven2) in offline mode and the