12 2020 档案
摘要:题面传送门 数据这么小显然状压dp 考虑状压表示打掉的集合为时最少抛物线条数。 预处理表示过点和点的抛物线经过的点的集合。 但是这样的转移是的。 考虑怎么优化。 很明显我们的转移是无序的。将其变成有序即先打最小的点则可优化掉
阅读全文
摘要:题面传送门 考虑两颗子树如果交换,那么其实对其它子树与这两颗子树的贡献是没有影响的。 那么在线段树合并时判断一下是否要交换即可。 代码实现: #include<cstdio> #define beg(x) int cur=s.h[x] #define end cur #define go cur=t
阅读全文
摘要:题面传送门 考虑如果是边权怎么做。那么对于每个边从大到小合并然后按次计算贡献即可。 但是这道题是点权。 就有一个方法是把一条边的边权看作两点权最大值。仔细想想就发现是正确的。 代码实现: #include<cstdio> #include<algorithm> #define max(a,b) ((
阅读全文