自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

摸鱼地

可能是太懒,其实是太菜

  • 博客(6)
  • 收藏
  • 关注

原创 斜率优化

斜率优化前置技能点: DP初步 单调队列 求凸包 闲话:前面写这么多都是为了写这个做准备的……本来还应该写一下凸包,但凸包算法比较多,迟点吧……问题:给定非负整数序列aa长度为nn,状态转移方程为DP[i]=minik=1(DP[k]+(sum[i]−sum[k])2+C)DP[i]=\min_{k=1}^{i}(DP[k]+(sum[i]-sum[k])^2+C),求DP[n]思路:最朴素的做法,

2016-08-17 21:33:15 325

原创 hdu 3507

hdu 3507原题题意:给定非负整数序列aa长度为nn,状态转移方程为DP[i]=minik=1(DP[k]+(sum[i]−sum[k])2+C)DP[i]=\min_{k=1}^{i}(DP[k]+(sum[i]-sum[k])^2+C),求DP[n]思路:作为斜率优化的例题,在斜率优化的介绍里挺清楚的……代码:# include<stdio.h>const int nMax=500000;i

2016-08-17 21:20:22 908

原创 单调栈

单调栈前置技能点: 栈 单调队列 闲话:其实并不知道单调队列和单调栈的先后顺序,但既然我是先写单调队列的,那就把单调队列作为单调栈的前置技能点吧。问题:给定序列长度nn,求每个点作为最大/最小值的最长区间。思路:对于每个点,可以直接向左向右枚举直到遇到比它小的数,复杂度为O(n2)O(n^2)对于每个点,可以二分以它作为左端点的区间的长度,然后用线段树得到它是不是该长度的区间的最小值,同理向右处理。

2016-08-15 15:58:56 382

原创 poj 2796

poj 2823原题题意:给定一个长度为n(n<105)n(n<10^5)的非负整数序列aa,定义函数f(l,r)=(minri=la[i])∗(∑ri=la[i])f(l,r)=(\min_{i=l}^r a[i])*(\sum_{i=l}^r a[i]),求f(l,r)f(l,r)的最大值及其对应的ll与rr思路:对于∑ri=l(a[i])\sum_{i=l}^r(a[i])可以通过前缀和相减O

2016-08-15 15:31:40 293

原创 poj 2823

poj 2823poj 2823 原题 题意 思路 单调队列 原题题意:给定序列长度n<106n<10^6,窗口大小kk,将窗口放到序列上,从左往右一格一格移动窗体,输出每个状态窗体中数字的最小值和最大值。思路:数据量为10610^6,O(nlogn)O(n log⁡n)复杂度可过,也可以用单调队列,反正很裸。单调队列:于是我写了这么一个代码,g++交,T了……#include<stdio.h>co

2016-08-14 20:55:13 292

原创 单调队列

单调队列单调队列 前置技能点 问题 思路 概念引入 复杂度 拓展 例题前置技能点:队列问题:对于一个长度为n的序列,我们希望知道所有以k为长度的子序列的区间最小/大值。思路:struct Node{ int id; int value; }input[NodeNum];可以以O(k)O(k)的复杂度暴力枚举得到[l,l+k)[l,l+k)的最值,由于inputinput中长度为kk的

2016-08-14 20:36:09 330

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除