zoukankan      html  css  js  c++  java
  • 4.13 省选模拟赛 守卫 点分治 虚树

    avatar
    avatar

    没脑子选手又来丢人了 写正解写不出来 暴力的特判也给写挂了。

    看一眼题目范围 sumk<=500000 提示算法:虚树。

    但是 考虑直接对原树做出来虚树 发现这样做需要换根dp求每个点能审查的最大范围。然后按边处理。

    此时可以发现出现了问题 根本无法快速有效的查询x的父亲那边的点的数量 主席树不行 主席树+换根也是错误的。

    自闭ing.考虑打暴力 对于nQ的暴力 直接换根dp一下。

    对于ki==1的点 ??? 怎么不会做了..这种问题已经不能用简单的换根解决了。

    考虑点分治 容易用树状数组维护 子集一减就好了 更容易的是 直接求出sum[k]表示距当前点分中心<=k的点的数量。

    前者nlog^2 后者nlogn.

    对于 是链的情况 不难想到区间覆盖性问题 可以直接排个序然后贪心求 写一个线段树也行。

    这样就有50分了。

    但是我上午执意写正解 写到自闭。

    考虑100分 不难想到 点分树求答案 发现这样做需要预处理主席树 然后在每个点上查询 不过 重复的元素和距离的问题很难讨论清楚。

    题解给了一种做法是 ki>1时 考虑建一棵虚树出来。按边处理。

    怎么说 对于两个点 重合部分中间再建一个点 然后表示一下负贡献。

    我不太能理解这一点 好毒瘤...

    先咕了 放篇题解在这 LINK:Altria Pendragon 大佬的题解

    自闭

  • 相关阅读:
    Request功能
    Request继承体系
    HTTP协议:请求消息的数据格式---Request
    HTTP协议---HttpServlet
    hdu 1575 矩阵连乘2
    hdu 1005 Number Sequence(矩阵连乘+二分快速求幂)
    矩阵连乘
    MongoDB(六):选择字段、限制记录数、排序记录
    MongoDB(五):更新文档、删除文档
    爬虫(八):文件处理
  • 原文地址:https://www.cnblogs.com/chdy/p/12701352.html
Copyright © 2011-2022 走看看