
-------dp-------
文章平均质量分 65
Ren_Ivan
衡中oier,fight for furture
展开
-
[Poi2014]FarmCraft 树状dp
对于每个点,处理出走完其子树所需要的时间和其子树完全下载完软件的时间易证,对于每个点的所有子节点,一定优先选择差值大的来给后面的时间树规+贪心。#include#include#include#include#include#include#define N 500005using namespace std;int e=1,head[N],fa[N],n;int a原创 2017-08-01 21:26:58 · 311 阅读 · 0 评论 -
Poi2010 Monotonicity 2
树状数组优化dp可以证明最优解一定是通过之前的最优转移过来的,所以每一个点只需要保存以该节点为结尾的最长长度即可对于不同符号,等于号维护数组,大于小于维护树状数组#include#include#include#include#include#define N 500005using namespace std;int n,m,a[N],f[N],ans,c[2][2*N],原创 2017-07-27 21:07:46 · 520 阅读 · 0 评论 -
bzoj3594 方伯伯的玉米田 树状数组优化dp
f[i][j]表示到第i位,使用了j次机会的最长不下降子序列长度转移:f[i][j]=max(f[x][y])+1;x所以根据后两个条件维护二维树状数组求最值#include#include#includeusing namespace std;int n,m,k;int a[10005],c[505][5505],f[10005][505];int lowbit(in原创 2017-07-14 21:40:38 · 447 阅读 · 0 评论 -
bzoj 1592 dp
就是dp啊f[i][j]表示到第i位,最后一位高度是j的最小花费转移::f[i][j]=minn(f[i-1][k])+abs(a[i]-num[j]);(k#include#include#include#include#include#includeusing namespace std;int f[2005][2005],n,a[2005],b[2005],nu原创 2017-08-07 06:28:45 · 448 阅读 · 0 评论 -
bzoj 3126 单调队列优化dp
能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1#pragma GCC optimize ("O3")#include#include#include#include#include#define N 200005using namespace std;int l[N],r[N],n,m,f[N],q[N];int read(){ int a=0;c原创 2017-09-24 07:48:54 · 418 阅读 · 0 评论