当前位置: 首页 > news >正文

蓝桥杯2024年第十五届省赛真题-团建

题目描述
小蓝正在和朋友们团建,有一个游戏项目需要两人合作,两个人分别拿到一棵大小为 n 和 m 的树,树上的每个结点上有一个正整数权值。

两个人需要从各自树的根结点 1 出发走向某个叶结点,从根到这个叶结点的路径上经过的所有结点上的权值构成了一个正整数序列,两人的序列的最长公共前缀即为他们的得分。给出两棵树,请计算两个人最多的得分是多少。

输入格式
输入的第一行包含两个正整数 n, m ,用一个空格分隔。

第二行包含 n 个正整数 c1, c2, · · · , cn ,相邻整数之间使用一个空格分隔,其中 ci 表示第一棵树结点 i 上的权值。

第三行包含 m 个正整数 d1, d2, · · · , dm ,相邻整数之间使用一个空格分隔,其中 di 表示第二棵树结点 i 上的权值。接下来 n − 1 行,每行包含两个正整数 ui, vi 表示第一棵树中包含一条 ui 和vi 之间的边。

接下来 m − 1 行,每行包含两个正整数 pi, qi 表示第二棵树中包含一条 pi和 qi 之间的边。

输出格式
输出一行包含一个整数表示答案。
样例输入复制
2 2
10 20
10 30
1 2
2 1
样例输出复制
1
提示
【样例说明】两个序列可以为 [10, 20] , [10, 30] ,最大前缀为 1 ;

【样例输入】

5 4

10 20 30 40 50

10 40 20 30

1 2

1 3

2 4

3 5

1 2

1 3

3 4

【样例输出】

2

【样例说明】

两个序列可以为 [10, 20, 40] , [10, 20, 30] ,最大前缀为 2 。

【评测用例规模与约定】

对于 20% 的评测用例,1 ≤ n, m ≤ 500 ;对于所有评测用例,1 ≤ n, m ≤ 2 × 105,1 ≤ ci, di ≤ 108 ,1 ≤ ui, vi ≤ n ,1 ≤ pi, qi ≤ m ,对于任意结点,其儿子结点的权重互不相同。

1.分析

        对于任意结点,其儿子结点的权重互不相同,并不代表没有相同的元素。

        存储用深搜即可。

2.代码

#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
const int MAX = 2e5 + 100;
vector<int> c[MAX], d[MAX];
int n, m;
int a[MAX], b[MAX], re;

void dfs(int num,int x,int y,int fa_x,int fa_y) {
    re = max(re, num);
    unordered_map<int, int> t;
    for (auto it : c[x]) {
       if (it!=fa_x) {
           t[a[it]] = it;
       }
    }
    for (auto it : d[y]) {
        if (it != fa_y) {
            if (t.count(b[it])) {          //如果存在就向下走
                dfs( num + 1,t[b[it]], it, x, y);
            }
        }
    }
}
int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i <= m; i++) cin >> b[i];
    for (int i = 1; i < n; i++) {
        int x, y;
        cin >> x >> y;
        c[x].push_back(y);
        c[y].push_back(x);
    }
    for (int i = 1; i < m; i++) {
        int x, y;
        cin >> x >> y;
        d[x].push_back(y);
        d[y].push_back(x);
    }
    if (a[1] == b[1])  dfs(1, 1, 1,0,0);
    else re = 0;
    cout << re << endl;
    return 0;
}

相关文章:

  • Modbus RTU协议详解:基于 STM32 与脉冲电源的通信项目实例
  • vscode关闭仓库后如何打开
  • Adobe Genuine Service Alert 一直弹窗,老是一直弹窗【解决方法】
  • 微信小程序:实现多功能表格效果,例如滚动效果、宽度自定义、多选、行内编辑等功能
  • PostgreSQL16 的双向逻辑复制
  • Android实现简易计算器
  • Go执行当前package下的所有方法
  • 侯捷C++课程学习笔记:详解智能指针(三)
  • Feign中@RequestBody 与 @RequestParam 的区别
  • Vue3:组件通信方式
  • 暴力破解Excel受保护的单元格密码
  • 大数据学习(59)-DataX执行机制
  • 云原生性能测试全解析:如何构建高效稳定的现代应用?
  • 【数据结构】-哈夫曼树以及其应用
  • 基于ESP32的桌面小屏幕实战[8]:任务创建
  • package.json 依赖包约束及快速删除node_modules
  • 【GOOGLE插件】chrome.runtime.sendNativeMessage与本地应用交互
  • 爬虫案例十三js逆向模拟登录中大网校
  • 使用OpenCV和MediaPipe库——抽烟检测(姿态监控)
  • 【大模型技术】怎么用agent和prompt工程实现用户的要求?
  • 央媒:设施老化、应急预案套模板,养老机构消防隐患亟待排查
  • 俄乌刚谈完美国便筹划与俄乌领导人通话,目的几何?
  • 竞彩湃|欧联杯决赛前,曼联、热刺继续划水?
  • 对谈|“大礼议”:嘉靖皇帝的礼法困境与权力博弈
  • 大陆非遗项目打铁花、英歌舞将在台演出
  • 上海虹桥国际咖啡文化节开幕,推出茶咖文化特色街区、宝妈咖啡师培训