摘要:
有一个非常暴力的做法:枚举 $u,v$ 两点中的一个点作为根,然后在 3 棵树中以这个点为根 DFS 一遍,求最大值. 然后考虑用随机化去骗分:设当前枚举的点为 $x$,下一个点 $y$ 可以是 $x$ 为根时求出的最优解. 然后每隔 8 到 9 次随机一个新的 $x$. code: #includ 阅读全文
摘要:
如果做过软件开发,餐巾计划问题的话这题就秒切了. 还是类似的套路:借流思想. 正解的话就是无聊地上一个主席树优化建图就行. 维护一颗边权为正数地主席树,再维护一颗边权为负数的主席树就行. 主席树写了,感觉好恶心...... code: #include <bits/stdc++.h> #define 阅读全文
摘要:
这道题正统的做法应该是进行黑白染色(因为我们发现 $x,y$ 满足二分图的性质) 这里写了一个不会证明正确性的解法. 一般来说,这种相消/要求互质什么的一般都要转换成二分图来解决. code: #include <bits/stdc++.h> #define N 20008 #define inf 阅读全文
摘要:
和软件安装比较相似的拆点模型. 我们发现,每个点只能经过一次,也就是说每个点最多可以贡献给其他点一次. 然后连边方式和软件安装就几乎是相同的了. code: #include <bits/stdc++.h> #define N 2008 #define inf 10000000 #define ll 阅读全文