摘要:
前言 首先需要了解什么是最小生成树,还要知道什么是倍增(求Lca). 上面的东西如果了解了,就可以开始进入学习的路途了!! 1 算法框架 1.1 整体思路 用不是最小生成树上的边去更新答案. 1.2 具体维护 对于每一个倍增跳上去的,要维护两个东西: 路径的边权最大值. 路径的边权次大值 2 具体实 阅读全文
摘要:
题目大意 在一个圆周长为10000的圆上等距离分布n个雕塑,现在有m个新加入的雕塑(还是要求等距离摆放),问n个雕塑移动的总距离的最小值. Solution 显然必然会有一个雕塑不移动,所以可以直接不管他(这个证明的话可以通过代数+中位数证明). 设每一个雕塑移动的距离为$x_i$,那么显然就是最小 阅读全文
摘要:
题目大意 圆桌旁边坐着$n$个人,每个人有一定数量的金币,金币的总数能被$n$整除。每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数量相等。您的任务是求出被转手的金币的数量的最小值。 Solution 考虑一下这个东西怎么做,假设每一个人向周围都可以传递对吧,设$x_i$表示$i$向$i 阅读全文
摘要:
题目大意 你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bj分钟交代任务,然后他就会立刻独立地、无间断地执行Ji分钟后完成任务。你需要选择交代任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务应尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。 阅读全文
摘要:
题目大意: 你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头。(且不能被雇佣两次)。 输入格式 阅读全文