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)

    珍爱生命,远离抄袭!
  • 相关阅读:
    表格边框的合并
    solr服务搭建
    JedisClient操作redis 单机版和集群版
    redis集群的搭建
    FastDfs的搭建
    打开与关闭端口
    zookeper分布式搭建1
    zookeper分布式搭建
    Zookeeper的安装
    Linux下Jdk的安装
  • 原文地址:https://www.cnblogs.com/ycx-akioi/p/solution-cf1483d.html
Copyright © 2011-2022 走看看