poj3926
2024-09-08 16:37:51
dp+优化
很明显可以用单调队列优化。
记录下自己犯的sb错误: 数组开小,sum没搞清。。。
#include<cstdio>
#include<cstring>
using namespace std;
const int N = , M = ;
int n, m, k, ans;
int q[M];
int dp[N][M], sum[N][M], dis[N][M];
inline int max(int x, int y)
{
return x > y ? x : y;
}
inline int read()
{
int x = , f = ; char c = getchar();
while(c < '' || c > '') { if(c == '-') f = -; c = getchar(); }
while(c >= '' && c <= '') { x = x * + c - ''; c = getchar(); }
return x * f;
}
int main()
{
//dp[i][j] = dp[i - 1][x] + sum[j] - sum[x - 1]
//dp[i][j] = dp[i - 1][x] + sum[x] - sum[j - 1]
while(scanf("%d%d%d", &n, &m, &k))
{
memset(dp, , sizeof(dp));
ans = ;
if(n == && m == && k == ) break;
++n;
++m;
for(int i = ; i <= n; ++i)
for(int j = ; j <= m; ++j)
{
int x;
x = read();
sum[i][j] = sum[i][j - ] + x;
}
for(int i = ; i <= n; ++i)
for(int j = ; j <= m; ++j)
{
int x;
x = read();
dis[i][j] = dis[i][j - ] + x;
}
for(int i = ; i <= n; ++i)
{
int l = , r = ;
q[++r] = ;
for(int j = ; j <= m; ++j)
{
while(l <= r && dp[i - ][j] - sum[i][j] > dp[i - ][q[r]] - sum[i][q[r]]) --r;
q[++r] = j;
while(l <= r && dis[i][j] - dis[i][q[l]] > k) ++l;
dp[i][j] = dp[i - ][q[l]] + sum[i][j] - sum[i][q[l]];
}
l = ;
r = ;
q[++r] = m;
for(int j = m; j; --j)
{
while(l <= r && dp[i - ][j] + sum[i][j] > dp[i - ][q[r]] + sum[i][q[r]]) --r;
q[++r] = j;
while(l <= r && dis[i][q[l]] - dis[i][j] > k) ++l;
dp[i][j] = max(dp[i][j], dp[i - ][q[l]] + sum[i][q[l]] - sum[i][j]);
if(i == n) ans = max(ans, dp[i][j]);
}
}
printf("%d\n", ans);
}
return ;
}
最新文章
- 发现 OpenStack: 架构、功能和交互
- eventbus实时更新
- GDB中汇编调试
- HTML 学习笔记 CSS3 (边框)
- python函数,lambda表达式,三目运算,列表解析,递归
- [SHELL进阶] (转)最牛B的 Linux Shell 命令 (四)
- 利用PHPRPC以及SOAP分别实现PHP的Webserver功能
- 第一阶段项目(2 body)
- webservice第三篇【接口开发webservice、CXF框架使用、IDEA下使用webservice、小例子】
- OC学习11——循环引用与@class
- Markdown对应Yelee主题语法
- iview 3.x InputNumber数字框bug
- [转载]PHP中PSR-[0-4]规范
- spring boot 项目启动无任何反应
- noip第15课作业
- MySQL查询性能优化---高性能(二)
- 转multicast vs broadcast
- JavaScrip入门笔记(二)
- 从零搭建SSM框架(四)手动实现Tomcat部署
- MYSQL的隐式类型转换
热门文章
- AjaxDemo
- rrdtool 实践
- Opencv学习之路—Opencv下基于HOG特征的KNN算法分类训练
- 293. [NOI2000] 单词查找树——COGS
- Codeforces Round #469 Div. 2题解
- from __future__ import absolute_import的作用
- 《奋斗吧!菜鸟》 第八次作业:Alpha冲刺
- Delphi 10.3.2最新消息
- vim学习1-入门指令
- 【codeforces 767B】The Queue