- 博客(5)
- 收藏
- 关注
原创 HDU MAX Average Problem(斜率优化DP)
这个也是论文上的例题,给你一个正数序列,注意全是正数,否则就不满足和的单调性了,关于这个结论某些部分就不能在运用了,我先说一下前提条件,我就是前提条件没搞请,才弄的模模糊糊的,弄清楚前提条件后就会发现其实不是很难的。前提条件:1.所有的数均是(保证了他们的和是单调递增的)2.求的是连续的序列,且序列的长度大于等于k3.求的是序列的最大平均值,也就是(i, sum[i])值中斜率最大
2012-08-29 18:42:47 773
原创 汉诺塔VII
同汉诺塔VIII的思想,同样也是模拟递归过程,每次剪掉一半,这个是严格的O(n)的解法,每次最大的盘只可能在s或则e,不可能在mid这样递归的判断即可。#include #include #include #include #include using namespace std;const int MAXN = 66;int a[3][MAXN];int size[3];i
2012-08-28 11:13:52 2473
原创 HDU 2184 汉诺塔VIII
汉诺塔经典模型的一个问题,根本思想是基于汉诺塔递归模拟写法的剪枝统计,此题就是给你盘子的个数n,问你步数为m时,三个柱子上的盘子的分布情况?解题思路:在汉诺塔递归的DFS中讨论剩下m的步数,然后选择进入不同的递归层数,并模拟盘子的移动,整体复杂度为:O(n^2)递归代码写之纠结,详见代码:/* * File: main.cpp * Author: hit-acm *
2012-08-27 21:23:35 2135
原创 2012 2012 Multi-University Training Contest 7 Dragon Ball
如此简单的题目,让我们两个一直卡到最后也没搞出来,我的二分写惨了,他的游标也写错了。现在给出比较靠谱的写法,在下一层定位的时候,把上一层和下一层的合并排序后进行处理,当然这样的方法对于离线的非常有效,在线的还必须得二分,当然二分很纠结。/* * File: main.cpp * Author: hit-acm * * Created on 2012年8月14日, 下午1:14 *
2012-08-14 20:13:58 678
原创 单调队列的一个应用——求解连续区间最大值(HDU Max Sum of Max-K-sub-sequence)
DescriptionGiven a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left neighbour of A[1] is A[n] , and the right neighbour of A[n] is A[1].Now your job is to calculate the m
2012-08-02 20:12:13 1721
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人