dp转移方程很容易想 dp[i][j] = min{dp[i - 1][k] + abs(pos[i][j] -pos[i - 1][j]) + cost[i][j]}
n行m列 每次转移扫描m次 共n*m*m 为O(10^7) 1500ms,可以暴力一试。姿势不对就会TLE
其实加上个内联函数求绝对值,同时赋值时候不使用min(a, b) 用G++交 就可以水过
正解是:因...
分类:
其他好文 时间:
2014-07-12 19:55:08
阅读次数:
421
本题又是一题单调队列题解。
技巧就是需要计算好前n项和Sn = a1 + a2 + ... an
这样方便处理。
记录一条单调队列,其意义是: q(head), q(head+1), ...q(tail)
其中头q(head)代表当前最佳解的起点
这样我们只需要在求某点为结尾的S[i] - S[q(head)就得到当前最佳值。
了解了单调数列,知道其中的记录意义,那么这道题就没有难度了...
分类:
其他好文 时间:
2014-07-11 00:23:07
阅读次数:
265
http://202.121.199.212/JudgeOnline/problem.php?cid=1078&pid=9
分析:
a[ i ] : 第i个城市的汽油与到下一个城市距离的差;
dis[ i ] : 第i个城市到下一个城市的距离;
s[ i ] : 前i个 a[ i...
分类:
其他好文 时间:
2014-07-11 00:20:56
阅读次数:
377
本题是单调队列题解的入门,当然也可以使用RMQ 和 线段树,不过速度都没有单调队列那么快。
单调队列难点:
1 如何入列,保存数据 -- 最小单调队列的时候, 所有数都入列一次,在新的数据准备入列的时候,增加判断,如果当前数值小于队尾数值,那么队尾数值就出列。空队列的时候直接入列。
2 保存的数列是什么样的?
举例吧: 1 3 -1 -3 5 3 6 7
构建最小单调队列
第一个数值1...
原题: UVA 1169 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3610大白书上的原题。代码:#include #include #include ...
分类:
其他好文 时间:
2014-07-07 15:09:20
阅读次数:
386
Bob’s Race
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2115 Accepted Submission(s): 658
Problem Description
Bob wants to hol...
分类:
其他好文 时间:
2014-06-30 07:37:16
阅读次数:
284
Ctsc2012的题目。做完感觉自己瞬间变高富帅了。不过回想其实也觉得不难,想到用单调队列就很简单了,还有二分= =。呵对于给出的一篇文章,如果你们将它分成若干段,并在所有长度不小于L的片段在字典中间出现的总长度和不小于原文的90%,那么这篇文章就可以被认为是熟悉的。这里要注意理解一下题意,如果你要...
分类:
其他好文 时间:
2014-06-25 17:01:07
阅读次数:
229
#include#include#include#includeusing namespace std;#define N 220000#define inf 0x3ffffffffffffffLLtypedef long long ll;int v[N],e[N],ne[N],nn,w[N];vo...
分类:
其他好文 时间:
2014-06-25 11:04:35
阅读次数:
268
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1855题意:最近lxhgww又迷上了投资股票, 通过一段时间的观察和学习,他总结出了股票行情的一些规律。 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价...
分类:
其他好文 时间:
2014-06-23 07:17:39
阅读次数:
722
题目链接:http://poj.org/problem?id=2823
题目大意:给出一组数,一个固定大小的窗口在这个数组上滑动,要求出每次滑动该窗口内的最大值和最小值。
这就是典型的单调队列,单调队列的作用就在此。单调队列的队首为区间内的最值,但是整个队列不用保持单调。
用两个队列分别处理最大值和最小值,在此说明一下最大值;
往队列中添加值num时,从队尾开始扫,直到遇到一个小于num的...