lightoj-1128-Greatest Parent(二分+LCA)
首先我要实力吐槽这个lightoj
它给我的注册密码藏在不为人所见的地方
注册注册了10多分钟
qwq
----------------------------------------------------------------
其次我要再吐槽一下这个难懂的题目
全英文emm...
百度翻译都救不了我
(我画图花半天,才懂emm...)
--------------------------------------------------------------
好的
我还是先解释一下题目吧
最最最一开始给你一个t
一共要整t次(t个不同的树)
每次的根节点的编号都为0
先给你2个数n、m
n个节点的树
m次询问
接下来的n-1行
第i行(1 <= i <= n-1)也有两个数x,y
x为i点的父节点的编号
y为i点的权值
再接下来的m行为m次询问
每行也有两个数x,y
每次查询x的父节点中,权值大于或等于y,离x最远的节点,输出它的编号
----------------------------------------------------------------------------------------------------------
基于倍增LCA思想上又用了二分
和倍增LCA一样
首先需要预处理出来fa[ ][ ]数组
于是就开始二分找到最深的节点
---------------------------------------------------------------------------------------------------------
#include<cstdio>
#include<cstring>
#define N 500100
using namespace std; int n,m,dn[N],fa[N][],dq,last,t,tt; inline int lca(int l,int r)
{
last--;
if(l == r || dn[l] >= dq && dn[fa[l][]] < dq)
return l;
while((fa[l][last] == -) || dn[fa[l][last]] < dn[r])
last--;
if(dn[fa[l][last]] < dq)
return lca(l,fa[l][last]);
else if(dn[fa[l][last]] > dq)
return lca(fa[l][last],r);
return fa[l][last];
} int main()
{
int t;
scanf("%d",&t);
int tt = t;
while(t--)
{
memset(fa,-,sizeof(fa));
scanf("%d%d",&n,&m);
for(int i = ; i < n; i++)
{
int x ,y;
scanf("%d%d",&x,&y);
dn[i] = y;
fa[i][] = x;
}
dn[] = ;
printf("Case %d:\n",tt - t); for(int i = ; i < n; i++)
{
for(int j=; j <= ; j++)
{
if(fa[i][j - ] == -)
continue;//超出深度
fa[i][j] = fa[fa[i][j-]][j - ];
}
} for(int i = ; i <= m; i++)
{
last = ;
int x;
scanf("%d%d",&x,&dq);
printf("%d\n",lca(x,));
}
}
return ;
}
lightoj-1128-Greatest Parent(二分+LCA)的更多相关文章
- Lightoj 1128 - Greatest Parent
Gate 倍增模板,在一个严格小根堆中,给定$x,y$,求$x$的祖先中$≥y$的最高点. 注意清零 #include<cstdio> #include<iostream> # ...
- NOIP2015 运输计划(二分+LCA+差分)
4326: NOIP2015 运输计划 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 308 Solved: 208[Submit][Status] ...
- HDU 3830 Checkers(二分+lca)
Description Little X, Little Y and Little Z are playing checkers when Little Y is annoyed. So he wan ...
- 1128 - Greatest Parent---LightOj(LCA+离线算法)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1128 给你一颗树,树的每个节点都有一个权值,树根是节点0,权值为1,树中每个节点的权值 ...
- bzoj4326 树链剖分 + 线段树 // 二分 lca + 树上差分
https://www.lydsy.com/JudgeOnline/problem.php?id=4326 题意:N个点的树上给M条树链,问去掉一条边的权值之后所有树链长度和的最大值最小是多少. 首先 ...
- P2680 运输计划[二分+LCA+树上差分]
题目描述 公元20442044 年,人类进入了宇宙纪元. L 国有 nn 个星球,还有 n-1n−1 条双向航道,每条航道建立在两个星球之间,这 n-1n−1 条航道连通了 LL 国的所有星球. 小 ...
- bzoj4326: NOIP2015 运输计划(二分+LCA+树上差分)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4326 题目大意:有一颗含有n个顶点的树,每两个点之间有一个边权,现在有m个运输计划,每个 ...
- lightoj.1048.Conquering Keokradong(二分 + 贪心)
Conquering Keokradong Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- hdu3830 (二分+LCA)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Checkers Time Limit: 2000/1000 MS (Java/O ...
随机推荐
- 用js实现超链接导航菜单点击切换选中时的状态
项目中使用到点解导航切换不同的颜色,如果只是li选项卡还好办,这次用到的超链接选项卡,因为a链接每次点击都会刷新,所以浏览器记不住点击的状态,也没法切换点击状态,因为项目中有好多地方要用到,在网上找了 ...
- Android 9.0新特性
1.全面屏支持,Android P加入了对刘海屏的支持,谷歌称之为凹口屏幕(display with a cutout).借助最新的提供的DisplayCutout类,开发者可以找到非功能区域的位置和 ...
- VR技术了解(作业)
增强现实技术 概念:将现实世界和虚拟世界无缝集成的新技术. 突出特点: 真实世界与虚拟的信息集成 实时交互 三维空间中增添定位虚拟物 应用 医疗领域:医生可以利用增强现实技术,轻易地进行手术部位的精确 ...
- RTP 流媒体
RTMP协议是Adobe的私有协议,未完全公开,RTSP协议和HTTP协议是共有协议,并有专门机构做维护. RTMP协议一般传输的是flv,f4v格式流,RTSP协议一般传输的是ts,mp4格式的流. ...
- JHipster技术栈理解 - UAA原理分析
本文简要分析了UAA的认证机制和部分源码功能. UAA全称User Account and Authentication. 相关源码都是通过Jhipster生成,包括UAA,Gateway,Ident ...
- spring4笔记----报错publicid systemid之间要有空格的解决方法
<?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www. ...
- spring4笔记----使用装配注入合作者Bean的三种方式
no :不自动装配 byName :id(name)与setter方法去set前缀,并小写首字母后同名的Bean完成注入,如有多个匹配则抛异常 byType :spring容器找全部bean,如果找到 ...
- C# Modbus协议中读取浮点数的操作方法
输入参数P1,P2代表PLC中浮点数储存的两个寄存器获取的数据 public static float GetFloat(ushort P1, ushort P2) { int intSign, in ...
- 在ubuntu18.04上安装EOS
在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...
- kafka_2.11-2.0.0_安装部署
参考博文:kafka 配置文件参数详解 参考博文:Kafka[第一篇]Kafka集群搭建 参考博文:如何为Kafka集群选择合适的Partitions数量 参考博文:Kafka Server.prop ...