首页 > 其他分享 >最近公共祖先思考题

最近公共祖先思考题

时间:2024-09-25 18:34:21浏览次数:9  
标签:直线 个点 思考题 祖先 点集 问题 给定 公共 物品

#1

有n个物品,每个物品有重量wi和体积vi且密度均匀。你可以切物品,每次可以选一个物品切成两部分,也就是选一个0到1的实数k把物品分成k和(1-k)比例的两个物品。

你有最多X次切的机会。

问题1. 要想保证切完之后一定能把物品分成两组使得两组重量和相等,体积和也相等,X至少是几。

ans1.

(1) 把体积看成长度用一个环拼在一起,然后考虑旋转直径来划分,这样保证了长度的情况下用了界值定理。

(2) 用糖水浓度考虑,原始人想法。

(3) 二维平面用y表示密度,体积为长度,单调队列考虑

问题2. 设计高效算法求问题1的方案。

问题3. 如果是分成三组呢

问题0. 如果是要把物品分成两组使得两组数量相同且体积和也相等呢(不考虑重量)。

主要是考虑界值定理的应用

#2

对一个序列a[1]...a[n],找一个位置x,使得a[1]+...+a[x]和a[x+1]+...+a[n]的比值在[1/c,c]之间,要求c尽可能小

问题1. c最大情况下是多少,并构造对应c的例子

ans1. 对应带权分治。最坏卡到inf

问题2. 如果允许将某一个a[i]原位切开成两个相邻的位置,这两个位置的权值加起来是a[i]且任意分配,c最大情况下是多少,当n很大并且a[i]>=1的情况下,c会变小吗?

ans2. 1:2 ,具体卡到就是 {1,2}。不然就正常分治。

对一棵n个点的树,找一条边,使得这条边断开后,两边的连通子图的比值在[1/c,c]之间

问题3. c最大情况下是多少,并构造对应c的例子

ans3. 1:n 菊花图。

问题4. 如果树是一棵二叉树,对任意一个给定的n,c最大情况下是多少,并给出一个通用的构造对应c的例子的算法

ans4. 1:2 考虑调整法,二度即可往右边走,三度就选最大的走。卡到的话就是一个中心,然后三个等大的部分。

在树的基础上,如果给定一个结点x,将x删去后剩下若干个连通子图,将这些连通子图分成两组,使得两组点数的比值在[1/c,c]之间,要求c尽可能小

问题5. c最大情况下是多少,并构造对应c的例子

ans5. (可以爆炸)

问题6. 如果结点x是你自己选定的,c最大情况下是多少,并构造一个通用算法

ans6. 肯定是找树的重心。可以将树三度话,具体的可能类似于kruskal重构树。也可以用哈夫曼树来证明。1:2

对应问题:树分治。

#3

二维平面上有n个点,要求这些点互相不重合,并且三点不共线,编号为1...n,现在我们要画一条直线,如果一个点(x,y)满足Ax+By+C>=0,则视为点(x,y)在直线Ax+By+C=0的上方。将直线上方的点看做是一个集合。
问题1.如果n个点的坐标由你来构造,对直线Ax+By+C=0,假设A,B,C取遍所有实数,最多可以得到多少个不同的集合

ans1.可以先平移再旋转,然后卡住两个点。

问题2.如果有若干条直线,其上方点的集合相同,是否可以通过对这些直线进行旋转和平移,使得这些直线变成同一条直线

ans2. 同1

问题3.如果改变你在问题1中构造的点的坐标,不同的集合数是否会发生改变

ans3. 同1

问题4.给定点(x,y),对于所有过(x,y)的直线,是否一定存在一条直线,使得直线两侧的点数最多只差1,这里的点数不统计(x,y),如果点在直线上,由你决定属于哪一侧

ans4. 旋转边界值定理。

问题5.是否可以找到两条相交的直线,使得给定的n个点被分成四个点集,且最大的点集和最小的点集大小最多差1,如果点在直线上,由你决定属于哪一个点集

ans5. 给定一个已经等分的先,然后我们考虑给定相交线的角度 \(\alpha\) ,那么我们肯定可以通过平移来做到有一边平分,然后对于角度考虑界值定理。

问题6.是否可以找到三条共点的直线,使得给定的n个点被分成六个点集,且最大的点集和最小的点集大小最多差1,如果点在直线上,由你决定属于哪一个点集

(未完待续)

对应问题:平面四分树,平面六分树,可以做半平面修改。

标签:直线,个点,思考题,祖先,点集,问题,给定,公共,物品
From: https://www.cnblogs.com/tttxz/p/18431950

相关文章

  • 算法设计与分析(最长公共子序列
    目录最长公共子序列问题描述代码实现输出结果注意事项小结:最长公共子序列最长公共子序列(LongestCommonSubsequence,LCS)问题是计算给定两个序列的最长子序列的长度,这个子序列不要求连续,但需要保持相同的相对顺序。LCS广泛应用于文本比较、DNA序列分析等领域。问题描述给定两个......
  • IT运维管理工具 WGCLOUD - 使用公共告警消息推送接口
    WGCLOUD的公共告警接口用于外部业务系统调用的告警接口,需要升级到v3.4.5或以上版本只要调用这个接口,就可以将消息同步推送到我们的告警平台,比如邮件,钉钉,企业微信等此接口主要给有告警需求的第三方系统使用,就可以调用此接口实现告警消息推送,会同步推送给WGCLOUD已配置的告警方式(......
  • IT监控管理工具 WGCLOUD - 使用公共告警消息推送接口
    WGCLOUD的公共告警接口用于外部业务系统调用的告警接口,需要升级到v3.4.5或以上版本只要调用这个接口,就可以将消息同步推送到我们的告警平台,比如邮件,钉钉,企业微信等此接口主要给有告警需求的第三方系统使用,就可以调用此接口实现告警消息推送,会同步推送给WGCLOUD已配置的告警......
  • H7.1.4.1. 最短不公共子串
    Statement给两个串\(A,B\),其中\(|A|,|B|\le2000\),计算:\(A\)的最短子串,他不是\(B\)的子串\(A\)的最短子串,他不是\(B\)的子序列\(A\)的最短子序列,他不是\(B\)的子串\(A\)的最短子序列,他不是\(B\)的子序列Solution子序列自动机:\(\delta(u,c)=\min\{i|i>u\land......
  • 最长公共子串 题解
    StatementQ7.1.2.4,时限4s给一个串,定义\(\mathrm{LCS}\)为最长公共子串长度,\(q\)次询问,每次给出\(l,r\),求\[\operatorname{xor}_{i=1}^{r-l+1}\{i+\mathrm{LCS}(S[l,l+i-1],S[l+i-1,r])\}\]\(n\le10^5,q\le30\)Solutiontag:SA,线段树维护分治结构,orzhunction题目就是......
  • kubernetes集群公共服务 DNS
    1.我们先按照之前的方式新增加一个虚拟机。一、软件安装#yum-yinstallbind二、软件配置2.1主配置文件修改#vim/etc/named.conf#cat-n/etc/named.conf1//2//named.conf3//4//ProvidedbyRedHatbindpackagetoconfiguretheISCB......
  • 力扣最热一百题——最长公共前缀
    目录题目链接:14.最长公共前缀-力扣(LeetCode)题目描述示例提示:解法一:逐步缩减前缀Java写法:运行时间C++写法:运行时间时间复杂度和空间复杂度解法二:字典序排序什么是字典序?为什么通过字典序排序之后的首位字符串就可以找到最长公共前缀?举例说明:Java写法:运行时......
  • Sybase「退役」在即,某公共卫生机构如何实现 SAP Sybase 到 PostgreSQL 的持续、无缝数
    使用TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量替代OGG,Kettle等同步工具,以及基于Kafka的ETL解决方案,「CDC+流处理+数据集成」组合拳,加速仓内数据流转,帮助企业将真正具有业务价值的数据作用到实处,将“实时数仓”方法论落进现实。TapData持续迭代产品......
  • 1-10、信息 / 个人信息 / 数字化 / 数字经济 / 生产要素 / 数据要素 / 数据 / 公共数
    1、信息(在信息处理中)关于客体(如事实、事件、事物、过程或思想,包括概念)的知识,在一定的场中具有特定的意义。(《信息技术词汇第1部分:基本术语》(GB/T5271.1-2000))2、个人信息个人信息是以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息,不包括匿名化处......
  • Day17 二叉树part07| LeetCode 235. 二叉搜索树的最近公共祖先 ,701.二叉搜索树中的插
    235.二叉搜索树的最近公共祖先235.二叉搜索树的最近公共祖先利用二叉搜索树的特性——有序树,可知,如果中间节点是p和q的公共节点,那个中间节点的数值一定在[p,q]区间因此,从根节点往下搜索,遇到的第一个位于[p,q]或[q,p]区间的节点就是最近公共祖先classSolution{......