作业介绍

好好学习,可不只是说说而已。

集合:set,map

栈,队列,及其单调性

树与堆

排序&查找

P1163 【入门】树的公共祖先(LCA)

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
typedef long long LL;

int n,x,y,a,b;
int f[N], fx[N], fy[N];
int px=0, py=0;

int main(){
    cin>>n>>x>>y;
    for(int i=1; i<=n; i++) f[i]=i;
    for(int i=1; i<n; i++) {
        cin>>a>>b; f[a] = b; 
    } 
    while(f[x] != x){
        fx[++px] = x; // 修改地方,x,y可能相同
        x = f[x];
    }
  
    while(f[y] != y){
        fy[++py] = y;// 修改地方
        y = f[y];
    }
  
    int rt=1; 
    for(int i=1; i<=px; i++){
        int flag=0;
        for(int j=1; j<=py; j++){
            if(fx[i] == fy[j]){
                rt=fx[i]; flag=1;  break;
            } 
        }
        if(flag) break;
    }
    cout<<rt;
  
    return 0;
}

完成基本要求的题目后,可以在首页题单中练习:首页-> 13、STL模板

1、链表&队列&栈

2、树&二叉树&堆&图论

状态
已结束
题目
33
开始时间
2023-1-13 0:00
截止时间
2023-1-21 23:59
可延期
24 小时