• 杂题


    题意

    给定(n)个点,(m)条带权边的无向图,走过第(i)条边,血槽中的血会下降(v_i)点,如果不足(v_i)点,这人会当场去世。
    (n)个点中,有若干个是关键点,在这些关键点可以将血槽补满。
    (q)次询问,每次问一个玩家的血槽至少需要多大,才能从(x)走到(y)
    保证(x,y)是关键点

    做法

    若所有点均为关键点,则搞个MST查询路径最小值即可

    可以将关键点两两之间求最短路然后用其作新图的边,搞个MST
    但这样边数是(O(n^2))

    对于原图的点(i),令(from_i)(i)最近的关键点,(dis_i)为距离
    ((u,v,w)in E)(from_u eq from_v),则将新图加入((from_u,from_v,dis_u+dis_v+w))

    正确性:
    对于关键点(x,y(x eq y)),其在原图的最短路径上,若均不满足((u,v)in E)(from_u=x,from_v=y)
    则通过最短路径上生成的边,会比(x,y)之间连最短路这条边优

  • 相关阅读:
    Linux目录操作
    图形库
    Mybatis两表连接(一对一)
    ssm图片上传到数据库
    ajax函数实例
    html、css基础
    HDU 1213 How Many Tables
    HTML5简介
    在script中创建标签的三种方式
    html css js jq问题总结
  • 原文地址:https://www.cnblogs.com/Grice/p/13127065.html
Copyright © 2020-2023  润新知