Luogu题单

前置芝士

\(K-D\;Tree\)

例题略解

P2479 [SDOI2010]捉迷藏

大概就是 K-D Tree 的板子题了吧,网上的打法都不太友好,参考了 fengwu 的打法。

对于建树的时候每一层针对不同的维度来建,保证相邻的层不是根据一个维度建。

取 min 和取 max 的操作不太一样,因为最小值并不一定是两端,也可能是序列中间的部分。

有一个优化就是关于枚举顺序,优先挑更可能是答案的来进行计算。

每一次计算的结果同时对于与现在扫到的点最优解的点的值也进行更新,算是一个优化吧

\(code\)

P4475 巧克力王国

还是维护两个坐标的最大以及最小值。

因为是一次函数,所以只要考虑最大值以及最小值就可以知道这个区间是否可以。

在维护最大最小值的同时维护一个区间的美味值加和。

对于每一个询问扫一遍查询一遍就好了。

\(code\)

P2093 [国家集训队]JZPFAR

还是老套路,维护最大最小值。

同时加上一个优先队列维护当前扫到的前 k 大的数字。

遇到更优的就替换掉。

\(code\)

P4357 [CQOI2016]K 远点对

和上一个题的套路一模一样。

只不过没有了询问,直接再次扫一边整个序列进行求解就好了。

注意每一个点对会被扫到两边,需要把给的 K 乘上一个 2。

\(code\)

P4169 [Violet]天使玩偶/SJY摆棋子

其实如果没有插入操作的话就是一个板子。。。

对于插入操作如果我们只是暴力插入极有可能会导致整棵树的不平衡。

因此我们借鉴一下替罪羊树的思路:

如果某一棵子树所占比大于某一个值,就利用一个 \(\alpha\) 值对于整棵树进行重建,以保证整棵树的平衡。

于是我们愉快的用 \(pia\) 操作+\(O_2\) 通过了此题。

\(code\)

P4848 崂山白花蛇草水

用暴力水过去的,但是快就行了。

开两个数组,一个大的,一个小的,并且保证是有序的。

每一次的插入操作直接插入到小的数组的对应位置。

如果插入后小块的大小 \(\ge \sqrt{n}\) 的话就把小块中的全部归并到大的数组中。

这样做可以大大的减小插入的复杂度。

然后查询的话,直接暴力查找就好了。

\(code\)

K-D Tree 总结的更多相关文章

  1. 第46届ICPC澳门站 K - Link-Cut Tree // 贪心 + 并查集 + DFS

    原题链接:K-Link-Cut Tree_第46屆ICPC 東亞洲區域賽(澳門)(正式賽) (nowcoder.com) 题意: 要求一个边权值总和最小的环,并从小到大输出边权值(2的次幂):若不存在 ...

  2. AOJ DSL_2_C Range Search (kD Tree)

    Range Search (kD Tree) The range search problem consists of a set of attributed records S to determi ...

  3. Size Balance Tree(SBT模板整理)

    /* * tree[x].left 表示以 x 为节点的左儿子 * tree[x].right 表示以 x 为节点的右儿子 * tree[x].size 表示以 x 为根的节点的个数(大小) */ s ...

  4. HDU3333 Turing Tree(线段树)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=3333 Description After inventing Turing Tree, 3x ...

  5. K-D Tree

    这篇随笔是对Wikipedia上k-d tree词条的摘录, 我认为解释得相当生动详细, 是一篇不可多得的好文. Overview A \(k\)-d tree (short for \(k\)-di ...

  6. POJ 3321 Apple Tree(树状数组)

                                                              Apple Tree Time Limit: 2000MS   Memory Lim ...

  7. CF 161D Distance in Tree 树形DP

    一棵树,边长都是1,问这棵树有多少点对的距离刚好为k 令tree(i)表示以i为根的子树 dp[i][j][1]:在tree(i)中,经过节点i,长度为j,其中一个端点为i的路径的个数dp[i][j] ...

  8. Segment Tree 扫描线 分类: ACM TYPE 2014-08-29 13:08 89人阅读 评论(0) 收藏

    #include<iostream> #include<cstdio> #include<algorithm> #define Max 1005 using nam ...

  9. Size Balanced Tree(SBT) 模板

    首先是从二叉搜索树开始,一棵二叉搜索树的定义是: 1.这是一棵二叉树: 2.令x为二叉树中某个结点上表示的值,那么其左子树上所有结点的值都要不大于x,其右子树上所有结点的值都要不小于x. 由二叉搜索树 ...

  10. hdu 5274 Dylans loves tree(LCA + 线段树)

    Dylans loves tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

随机推荐

  1. RestfulApi 学习笔记——.net core入门操作(二)

    前言 前面简单介绍了一下restfulapi是什么东西,那么我们应该在.net core 中如何实现呢?或者说该怎么做才能有这个restful api呢? 正文 幸运的是.net core帮助我们实现 ...

  2. mysql 重新整理——索引优化一个简单的案例 [十一]

    前言 经过了前面的一系列理论,那么用一个例子去看一下吧. 正文 EXPLAIN SELECT t3.emp_no,t3.first_name,(select t4.last_name from tem ...

  3. MVC过滤器简单刨析

    前言 简单介绍一下过滤器. 正文 看下过滤器类型: action: 在动作方法之前及之后执行 result: 在action结果被执行前或者之后执行,比如说返回一个视图,再执行视图前执行一个方法,再执 ...

  4. CF1933D Turtle Tenacity: Continual Mods

    思路: 此题其实很简单,不要被邪恶的出题人迷惑了双眼. 此题判断有解一共有两种情况. 通过题意可以知道将原数组排序后如果 \(b_{1} \ne b_{2}\),那么最后的结果一定 \(\ne 0\) ...

  5. 教你如何进行Prometheus 分片自动缩放

    本文分享自华为云社区<使用 Prometheus-Operator 进行 Prometheus + Keda 分片自动缩放>,作者: Kubeservice@董江. 垂直缩放与水平缩放 P ...

  6. 阿里云 EMR Delta Lake 在流利说数据接入中的架构和实践

    简介: 为了消灭数据孤岛,企业往往会把各个组织的数据都接入到数据湖以提供统一的查询或分析.本文将介绍流利说当前数据接入的整个过程,期间遇到的挑战,以及delta在数据接入中产生的价值. 背景 流利说目 ...

  7. 一文了解阿里一站式图计算平台GraphScope

    简介: 随着大数据的爆发,图数据的应用规模不断增长,现有的图计算系统仍然存在一定的局限.阿里巴巴拥有全球最大的商品知识图谱,在丰富的图场景和真实应用的驱动下,阿里巴巴达摩院智能计算实验室研发并开源了全 ...

  8. WPF 修复引用库报错 所使用的 PresentationFramework 6

    本文记录一个 WPF 构建的坑,这是 WPF 仓库的运维管理大意挖的坑.将会在大家使用低版本的 dotnet 6 如 6.0.1 版本时,引用其他人使用高 dotnet 6 版本,如 dotnet 6 ...

  9. dotnet 5 让 WPF 调用 WindowsRuntime 方法

    本文告诉大家在 dotnet 5 里,如何使用 WinRT 加上 Microsoft.Windows.SDK 的辅助来调用 WindowsRuntime 方法.当前是 2021.10 此时的 Wind ...

  10. gin-vue-admin 03 项目打包上线

    目录 作者视频 思路 环境要求 1. 配置nginx 2.打包前台vue代码 3.打包后台go代码 4. 上传代码到服务器 5. 后台运行power 6. 访问后台 开发场景: 1. nginx 配置 ...