jzoj3054-祖孙询问【LCA】

正题


题目大意

求两个点的祖孙关系。


解题思路

直接LCALCALCA,然后暴力判断。


codecodecode

#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#define N 41000
using namespace std;
struct line{int to,next,w;
}a[N*5];
int tot,n,m,s,x,y,ls[N],dep[N],f[N][30],dis[N][30],t;
queue<int> q;
inline int readn()
{int X=0,w=0; char c=0;while(c<'0'||c>'9') {w|=c=='-';c=getchar();}while(c>='0'&&c<='9') X=(X<<3)+(X<<1)+(c^48),c=getchar();return w?-X:X;
}
inline void addl(int x,int y,int w)
{a[++tot].to=y;a[tot].next=ls[x];a[tot].w=w;ls[x]=tot;
}
inline void bfs(int s)
{q.push(s);dep[s]=1;while(!q.empty()){int x=q.front();q.pop();for (int i=ls[x];i;i=a[i].next){int y=a[i].to;if (dep[y]) continue;q.push(y);f[y][0]=x;dep[y]=dep[x]+1;dis[y][0]=a[i].w;}}t=(int)(log(n)/log(2))+1;for (int j=1;j<=t;j++){for (int i=1;i<=40000;i++){f[i][j]=f[f[i][j-1]][j-1];dis[i][j]=min(dis[i][j-1],dis[f[i][j-1]][j-1]);}}
}
inline int LCA(int x,int y)
{if (dep[x]>dep[y]) swap(x,y);for (int i=t;i>=0;i--)if (dep[f[y][i]]>=dep[x]) y=f[y][i];if (x==y) return x;for (int i=t;i>=0;i--)if (f[y][i]!=f[x][i]) {x=f[x][i];y=f[y][i];}return f[x][0];
}
int main()
{n=readn();for(int i=1;i<=n;i++){x=readn();y=readn();if(y==-1) s=x;else{addl(x,y,1);addl(y,x,1);}}m=readn();bfs(s);for(int i=1;i<=m;i++){x=readn();y=readn();int lca=LCA(x,y);if(lca==x) printf("1\n");else if(lca==y) printf("2\n");else printf("0\n");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

入职、最近两个月以及感悟反省

六月份我入职了 现在是八月份&#xff0c;来讲讲我获得了什么吧。 可能最重要的就是熟练了公司的环境&#xff01;熟悉了那种工作氛围&#xff01;为以后工作铺垫基础。 这个倒是必然的&#xff0c;更多的是我想知道我实际意外所获得的东西&#xff0c;下面就来讲讲吧&#xff…

Hangfire在ASP.NET CORE中的简单实现

hangfire是执行后台任务的利器&#xff0c;具体请看官网介绍&#xff1a;https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNetCore hangfire的任务需要数据库持久化&#xff0c;我们在Startup类中修改ConfigureServices 然后在Configure方法中…

Spark入门(二)多主standalone安装

一、集群安装条件前置 实验spark安装在【Hadoop生态Zookeeper安装】机器上&#xff0c; 已完成安装zookeeper、jdk、hadoop和ssh、网络等配置环境等。 spark所依赖的虚拟机和操作系统配置 环境&#xff1a;ubuntu14 spark-2.4.4-bin-hadoop2.6 apache-zookeeper-3.5.6 jd…

jzoj3055-比赛【数学,统计】

正题 题目大意 2∗n2*n2∗n个人&#xff0c;AAA队BBB队各nnn各&#xff0c;有不同的战斗力。两个队的人随机PKPKPK&#xff0c;每次PKPKPK的价值为(X−Y)2(X-Y)^2(X−Y)2加入获胜队。求AAA队期望比BBB队多多少分。 解题思路 首先根据全排列我们发现其实每一个人打别的队的任何…

js的三元表达式用来替换表格中的颜色

var k1 3; var k2 0; var a k11?color-success:k10?color-red:k13?color-kejin: console.log(a)简单三元 scope.row.status 1 ?启用:禁用精确三元表达 scope.row.status1?启用:scope.row.status0?禁用:

jzoj3056-数字【数位dp,统计,容斥】

正题 题目大意 求有多少个2∗n2*n2∗n位的数字(允许有前导零)满足 只包含SSS集合内的数字前nnn位的和等于后nnn位之和或者奇数位之和和偶数位之和相等 解题思路 预处理数组fi,jf_{i,j}fi,j​表示iii位数&#xff0c;数字之和为jjj时的方案数。 动态转移方程 fi,j∑k1mfi,j−…

Ocelot——初识基于.Net Core的API网关

前言 前不久看到一篇《.NET Core 在腾讯财付通的企业级应用开发实践》&#xff0c;给现在研究.Net Core及想往微服务方向发展的人来了一剂强心针。于是我也就立刻去下Ocelot的源码及去阅读官方文档。 Ocelot的Github地址&#xff1a;https://github.com/TomPallister/Ocelot 官…

forEach和for in

如果是对数组本身进行操作&#xff0c;则必然要用到for循环&#xff0c;如果是依赖数组做其他东西的操作&#xff0c;则可以用 forEach 最经典的两种操作 1、批量获取数组中的单个元素 let _selectSns [];this.multipleSelection.forEach(item > {_selectSns.push(item.sn…

Spark入门(三)Idea构建spark项目

一、依赖包配置 scala与spark的相关依赖包&#xff0c;spark包后尾下划线的版本数字要跟scala的版本第一二位要一致&#xff0c;即2.11 pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.…

VS Tools for AI全攻略

大家都知道微软在Connect();17大会上发布了VS Tools for AI&#xff0c;旨在提升Visual Studio和VSCode对日益增长的深度学习需求的体验。看了一圈&#xff0c;网上似乎没有一个完整的中文教程来教你怎么完整配置深度学习方案。 与此同时我也接了一个活&#xff0c;是俱乐部与M…

欢乐纪中B组周五模拟赛【2019.3.8】

前言 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC2222017myself2017myself2017myself2102102101001001001001001001010103332017zyc2017zyc2017zyc2002002001001001001001001000003332017xjq2017xjq2017xjq20020020010010010010010…

每日一问8-17

1、Es6的新语法有哪些? 1、新增块级作用域&#xff0c;let const 2、for of 和for in 3、解构赋值&#xff1a;变量替换对象里的值 4、展开运算符&#xff1a;…用法 5、模板字符串&#xff0c;用${}&#xff0c;可在其中加入变量。反引号 6、箭头函数: 2、有几种方式实现元…

Spark入门(四)Idea远程提交项目到spark集群

一、依赖包配置 scala与spark的相关依赖包&#xff0c;spark包后尾下划线的版本数字要跟scala的版本第一二位要一致&#xff0c;即2.11 pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.…

jzoj4742-单峰【数学,数论】

正题 题目大意 求1∼n1\sim n1∼n的全排列中有多少个满足单峰 解题思路 现在考虑一个单峰&#xff0c;我们加入一个更小的数&#xff0c;要么插在最左边&#xff0c;要么插在最右边&#xff0c;所以得出答案结论2n−12^{n-1}2n−1 codecodecode #include<cstdio> #inc…

关于负载均衡的一切:总结与思考

正文 古人云&#xff0c;不患寡而患不均。 在计算机的世界&#xff0c;这就是大家耳熟能详的负载均衡&#xff08;load balancing&#xff09;&#xff0c;所谓负载均衡&#xff0c;就是说如果一组计算机节点&#xff08;或者一组进程&#xff09;提供相同的&#xff08;同质的…

Vue父组件使用子组件时,需要携带参数,函数内如何获取子组件给的值

在参数中 通过$event获取&#xff1a; 子组件 this.$emit(visible-change, val)父组件 <en-category-picker visible-change"changeVisiable($event,scope.$index, scope.row)" />changeVisiable(val, _index, _row) {if (val false) {this.confirmChangeS…

Spark入门(五)Spark SQL shell启动方式(元数据存储在derby)

一、spark-sql shell介绍 Spark sql是以hive SQL提交spark任务到spark集群执行。 由于spark是计算框架没有存储功能&#xff0c;所有spark sql数据表映射关系存储在运行shell的当前目录下metastore_db目录里面&#xff08;spark默认使用derby数据库创建的本地存储&#xff0c…

jzoj4743-积木【状压dp】

正题 题目大意 有长方体积木nnn块&#xff0c;求能搭成的最高高度。 解题思路 考虑状态压缩&#xff0c;设fs,i,jf_{s,i,j}fs,i,j​表示积木使用状态为sss&#xff0c;最下面的是第iii块&#xff0c;状态为jjj&#xff1a; 状态&#xff1a;对于一个长方体a,b,ca,b,ca,b,c a…

Spark入门(六)Spark SQL shell启动方式(元数据存储在mysql)

一、hive配置文件 在spak/conf目录添加hive-site.xml配置&#xff0c;设置mysql作为元数据存储的数据库 <?xml version"1.0" encoding"UTF-8" standalone"no"?> <?xml-stylesheet type"text/xsl" href"configurat…

Asp.NET Core2.0 项目实战入门视频课程_完整版

END OR START? 看到这个标题&#xff0c;你开不开心&#xff0c;激不激动呢&#xff1f; 没错&#xff0c;.net core的入门课程已经完毕了。52ABP.School项目从11月19日&#xff0c;第一章视频的试录制&#xff0c;到今天完整版出炉&#xff0c;离不开各位的帮助和加油。 课程…