很愤怒!特别愤怒!超级愤怒!!!

我LCA居然错了!!而且是那种特别愚蠢的错误

我把代码都交错了!!!

silasila

话不多说,代码上特别详细了

 #include<bits/stdc++.h>
#define FOR(i,a,b) for(register int i=a;i<=b;i++)
#define ROF(i,a,b) for(register int i=a;i>=b;i--)
using namespace std;
const int N=+;
int n,m,s;
int scan()
{
int as=,f=;
char c=getchar();
while(c>''||c<''){if(c=='-') f=-;c=getchar();}
while(c>=''&&c<=''){as=(as<<)+(as<<)+c-'';c=getchar();}
return as*f;
}
struct ss
{
int now,next;
}b[N*];
int num=;
int deep[N],fa[N][],lg[N],head[N];
void add(int x,int y)
{
num++;
b[num].next =head[x];
b[num].now=y;
head[x]=num;
}
void dfs(int f,int father)
{
deep[f]=deep[father]+;//根节点的深度
fa[f][]=father;//表明该f的最直接祖先是father
for(int i=;(<<i)<=deep[f];i++)//小于该深度啊...
{
fa[f][i]=fa[fa[f][i-]][i-];//他的祖先是祖先的祖先啊,我们是从
//上往下走的,所以关于他的祖先的祖先也是早就求出来的
}
for(int i=head[f];i;i=b[i].next)//找儿子!!
{
int j=b[i].now ;
if(j!=father)
dfs(b[i].now,f);//找儿子,木有毛病啊
}
}
int lca(int x,int y)
{
if(deep[x]<deep[y])
swap(x,y);//是x成为层数深的那个
ROF(i,,)
{
if(deep[fa[x][i]]>=deep[y]) x=fa[x][i];
if(x==y) return x;//此时就找到了!!
}
// if(x==y) return x;//此时就找到了!!
for(int k=;k>=;k--)
{
if(fa[x][k]!=fa[y][k])//父亲不同就同时往上跳
{
x=fa[x][k];
y=fa[y][k];
}
}
return fa[x][];//此时xy的父节点相同,所以该点直接的父亲结点就是LCA
}
int main()
{
// freopen("lca.in","r",stdin);
// freopen("lca.out","w",stdout);
n=scan();
FOR(i,,n)
{
int x,y;
x=scan();
if(x==) {s=i;}
add(x,i);
//add(i,x);//储存撒
}
dfs(s,);//s是0结点的儿子..
m=scan();
int lst=;
FOR(i,,m)
{
int x,y;
x=scan();y=scan();x=x^lst;y=y^lst;
lst=lca(x,y);
printf("%d\n",lst);
}
return ;
}

silasila

愚蠢的LCAAAAA~~~~(>_<)~~~~的更多相关文章

  1. DDD 领域驱动设计-看我如何应对业务需求变化,愚蠢的应对?

    写在前面 阅读目录: 具体业务场景 业务需求变化 "愚蠢"的应对 消息列表实现 消息详情页实现 消息发送.回复.销毁等实现 回到原点的一些思考 业务需求变化,领域模型变化了吗? 对 ...

  2. C语言中史上最愚蠢的Bug

    C语言中史上最愚蠢的Bug   本文来自“The most stupid C bug ever”,很有意思,分享给大家.我相信这样的bug,就算你是高手你也会犯的.你来看看作者犯的这个Bug吧.. 首 ...

  3. 【吐槽】IM群里几种我认为愚蠢的提问方式

    一.“有人吗?” 你能得到一句[在,请说]的答复我就服了你,这样问的结果往往是等半天没一个人鸟你,悲观的你或者就此凄凉的退群了,感概人情冷暖的同时甚至开始怀疑人生:积极的你或者这才意识到~要不干脆说问 ...

  4. 一次愚蠢的NOIP模拟赛

    找礼物[find.pas/find.c/find.cpp] [问题描述] 新年到了,突然间,就在那美丽的一霎那,你好友和你(K个人)的周围满是礼物,你发扬你帅气的风格,让你的好友先拿,但是每个人只能拿 ...

  5. discuz特殊主题插件开发步骤和犯的愚蠢错误

    discuz作为国内流行的论坛系统,可谓造福了不少趣味相投的网友们.它让天南地北.国内外有着共同兴趣爱好的人们聚集在一起,分享彼此的喜怒哀乐.心得体会.然而作为discuz的使用者之一,还是个码农,然 ...

  6. 【每周一译】愚蠢的指标:Java中使用最多的关键字

    此翻译纯属个人爱好,由于水平所限,翻译质量可能较低.网络上可能存在其它翻译版本,原文地址:http://blog.jooq.org/2013/08/26/silly-metrics-the-most- ...

  7. 又是一个愚蠢的错误,皆因.xml而起

       论java中的.xml到底有多坑?! 感觉自己都快哭了,再一次被.xml给坑了一下,这次坑的太狠了,一下子导致自己浪费了昨天一下午,一晚上,今天一上午和半个下午呀,中间的过程真的是乏善可陈呀,各 ...

  8. iOSUIWebView---快停下啦,你的愚蠢的行为

    公元前 之前还是学生时代的时候给社团们学弟学妹们介绍iOS编程的时候,简单的准备了图灵ios培训第一周(使用UIWebView创建简易浏览器), NSURL *url =[NSURL URLWithS ...

  9. 一个愚蠢的python逻辑语法错误

    这个事情再次佐证了一个莫名其妙的现象背后一定会有一个愚蠢到无以复加的错误的真理. 写python单元测试的时候发现一个莫名其妙的问题: def xmlStandander(self,s): retur ...

随机推荐

  1. 2,理解JVM

      一.内存管理:   1,内存结构: 栈和堆区别,栈是连续内存区,一般是2M单位,堆是不连续的链表.受限于虚拟内存,new时分配 PC寄存器.java栈.堆.方法区.本地方法区.运行常量池 java ...

  2. 教你用Bootstrap开发漂亮的前端界面

    Bootstrap介绍: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. Bootstrap的特点: 一.预处理脚本:虽然可以直 ...

  3. 【题解搬运】PAT_L1-009 N个数求和

    从我原来的博客上搬运.原先blog作废. (伪)水题+1,旨在继续摸清这个blog(囧 题目 就是求N个数字的和.麻烦的是,这些数字是以有理数"分子/分母"的形式给出的,你输出的和 ...

  4. 【题解搬运】PAT_A1020 树的遍历

    题目 Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder an ...

  5. Charles的Https抓包及弱网配置

    一.Charles的主要功能 (1)截取Http 和 Https 网络封包. (2)支持重发网络请求,修改请求参数,方便后端调试. (3)支持模拟弱网环境. 二.配置简单抓包 1.设置系统代理:勾选P ...

  6. python------- IO 模型

                                                    IO模型介绍                                               ...

  7. python--基础篇二

    一. 格式化输出 :name=input("name:") age=input("age:") hobby=input("hobbie:") ...

  8. 【CodeForces】9B-Running Student

    目录 Question Description Input Output Solution 解法1 Question Description 小明在公交车始发站上车,他应该在哪个站点下车才能最快到达学 ...

  9. Leetcode 675.为高尔夫比赛砍树

    为高尔夫比赛砍树 你被请来给一个要举办高尔夫比赛的树林砍树. 树林由一个非负的二维数组表示, 在这个数组中: 0 表示障碍,无法触碰到. 1 表示可以行走的地面. 比1大的数 表示一颗允许走过的树的高 ...

  10. git - work flow

    git status – Make sure your current area is clean. git pull – Get the latest version from the remote ...