摘要:
题目描述: 给出一棵$n(n<=200000)$的树。每个点有一个权值$w$,表示堵上这个点的花费。 $m$组操作,操作一为将点$x$的权值加上一个非负整数$d$,操作二为询问以点$x$为根的子树内堵上所有根到叶节点路径的最小花费。 题解: 设$h[x]$为$x$的所有子节点的最小花费之和。 一眼看 阅读全文
摘要:
题目描述 题解: 一个看起来非常人畜无害的$dp$:$$f[i][k]=min(f[j][k]+cost(j,i))+c[i]$$ 中间那个$cost(j,i)$可以通过$cost(j,i-1)$得到,这个东西是动态的。 用线段树维护一下就好了。 代码: 阅读全文
摘要:
题目描述 题解: $dp$。 有$$f[r[i]]=min(f[k]+1)$$。 然后用线段树优化转移就好了。 代码: 阅读全文
摘要:
题目描述 题解: 很明显总体路径可以是一直向左/向右,或者先向一个方向跑几步,然后反向跑。 所以我们可以得到四种基本运动方式: LGL:一直向左; RGR:一直向右; LGR:先向左,然后向右回到原点; RGL:先向右,然后向左回到原点。 然后决策单调,分治求解上面四个东西,最后合并出结果。 代码: 阅读全文
摘要:
题目描述 题解: 答案显然是$max((q-p)*(e-d))$ 依然先贪心。 对于工厂,我们倾向于$pi<pj,di<dj$的; 对于买家,我们倾向于$qi>qj,ei>ej$的。 于是将一定不是最优解的工厂和买家划掉。 然后我们发现这个东西是满足决策单调性的。 问我怎么证?画一个二维坐标系,然后 阅读全文
摘要:
题目描述 题解: 我们可以考虑这样一种情况,有一块$10*10$的土地,还有一块$1*1$的土地。 当然将$1*1$的土地合到$10*10$的土地中了。 所以我们可以先按土地$x$值从大到小排序,然后从前向后扫一边,只将不会被完全覆盖的放到处理的集合里。 这样就可以$dp$了。 有$$dp[i]=m 阅读全文