随笔分类 -  APIO

摘要:传送门 解题思路 第一步,求出从每个墙壁开始刷是否合法。 第二步,合法的墙壁位置作为每个区间的左端点,变成区间覆盖问题。 第二步很显然是个贪心,重点是第一步如何解决。 我们设dp[i][j]表示从第i个墙壁第j个承包商开始刷能刷的墙壁的数量。 那么 当第j个承包商能刷第i个墙的时候,dp[i][j] 阅读全文
posted @ 2021-09-12 17:54 尹昱钦 阅读(208) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 比较难想到用左偏树。 因为管理者的图是个DAG,再加上满意度只与数量与管理者的领导力有关(这样贪心选薪水最低的),所以可以用左偏树合并+不断删最大值来保证总薪水小于总预算。 左偏树结构体里除了平常的东西还要加上总薪水、总人数。 具体做法就是先建树,然后dfs一遍,回溯的时候合并+删 阅读全文
posted @ 2020-12-01 21:53 尹昱钦 阅读(108) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 和种树这道题很像。 这个就是先差分求出每两个之间的间隔共n-1个,然后把这n-1个看做点,与种树一样处理。 注意因为要距离和最小,所以: 要用小根堆 要把a[0]和a[n]初始化成一个很大的数,因为在更新a[1]时要a[0]+a[2]-a[1],而0这个点我们不能选,所以初始化一个 阅读全文
posted @ 2020-11-05 20:31 尹昱钦 阅读(128) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 我们先考虑k==1的情况,这时候一定选取的是树的直径的两个端点。 因为不加这条新路每个边一定走两次,加上了之后道路两个端点之间的路径只需走一遍,所以贪心思想,一定是选取最长的路径的两个端点,即树的直径。 再考虑k==2的情况,一种情况是新加的道路的两个端点之间的路径与加的第一条边两 阅读全文
posted @ 2020-10-14 23:30 尹昱钦 阅读(117) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示