zoukankan      html  css  js  c++  java
  • CF1483D

    不难发现一条边 ((x,y)) useful 当且仅当存在两个点 ((a,b)) 满足 (dis_{a,x}+eg_{x,y}+dis_{y,b}leq l_{a,b})。由于题目保证 (eg)(l) 的给定都没有重边,所以直接枚举点们是正确的。但是是四方的,考虑优化之。

    (l) 移过来之后,发现任意一个变量都独立不开来,不好处理。容易发现,四个变量之间的关联关系是一个四元环,而枚举变量可以把当前点删除。我们的目的就是枚举一些点,删点之后使得剩下的都是孤立点,这样就能对每个点独立枚举处理了。

    不难发现枚举对角点的方案,例如枚举 (a,y)。这样一来 (dis_{a,x},eg_{x,y}) 成了关于 (x) 的函数,(dis_{y,b},l_{a,b}) 成了关于 (b) 的函数,于是可以分别独立处理:计算 (dis_{y,b}-l_{a,b}) 的最小值,然后枚举 (x) 看是否有 (dis_{a,x}+eg_{x,y}+mnleq 0) 即可。这样就降了一方。

    (以上都是瞎写的,别当真。实际上稍微乱想就出来了,这是个较为简单的 d1d)

    珍爱生命,远离抄袭!
  • 相关阅读:
    margin和pading的百分比值
    Vue中的computed和watch
    JS的自身属性和继承属性
    JS对象的可枚举属性和不可枚举属性
    Dart语言学习
    Practice_Test
    Lesson2 basic python_20200920
    Python 基础语法L1
    小男孩和狗的故事
    智者的故事
  • 原文地址:https://www.cnblogs.com/ycx-akioi/p/solution-cf1483d.html
Copyright © 2011-2022 走看看