随笔分类 -  dp->dp优化->数据结构维护dp

摘要:treap复习题。 阅读全文
posted @ 2019-06-28 09:09 LiGuanlin 阅读(269) 评论(0) 推荐(0)
摘要:题目描述 题解: 码力太差重构之后才$A……$ 首先求向量点积最大很容易想到凸包, 设已知$(x_0,y_0)$,求$(x,y)$满足$(x,y)*(x_0,y_0)>=(x',y')*(x_0,y_0)$ 设$(x,y)*(x_0,y_0)=c$ 那么$x*x_0+y*y_0=c$,$y=\fra 阅读全文
posted @ 2019-02-12 14:34 LiGuanlin 阅读(205) 评论(0) 推荐(0)
摘要:题目描述 题解: 可并堆优化$dp$。 由于$ans$只由$l$与派遣人数决定,我们可以贪心选取总和$<=m$的人。 有两种选择,一种是维护小根堆,一直$pop$到弹出的总和$>m$; 另一种是维护大根堆,一直$pop$到剩下总和$<=m$; 这两种比较一定是维护大根堆更优,因为每次$pop$后剩下 阅读全文
posted @ 2019-01-20 15:03 LiGuanlin 阅读(104) 评论(0) 推荐(0)
摘要:题目描述: 给出一棵$n(n<=200000)$的树。每个点有一个权值$w$,表示堵上这个点的花费。 $m$组操作,操作一为将点$x$的权值加上一个非负整数$d$,操作二为询问以点$x$为根的子树内堵上所有根到叶节点路径的最小花费。 题解: 设$h[x]$为$x$的所有子节点的最小花费之和。 一眼看 阅读全文
posted @ 2019-01-04 10:19 LiGuanlin 阅读(200) 评论(0) 推荐(0)
摘要:题目描述 题解: 一个看起来非常人畜无害的$dp$:$$f[i][k]=min(f[j][k]+cost(j,i))+c[i]$$ 中间那个$cost(j,i)$可以通过$cost(j,i-1)$得到,这个东西是动态的。 用线段树维护一下就好了。 代码: 阅读全文
posted @ 2019-01-04 10:09 LiGuanlin 阅读(141) 评论(0) 推荐(0)
摘要:题目描述 题解: $dp$。 有$$f[r[i]]=min(f[k]+1)$$。 然后用线段树优化转移就好了。 代码: 阅读全文
posted @ 2019-01-04 10:04 LiGuanlin 阅读(121) 评论(0) 推荐(0)