news 2026/4/16 16:02:34

2025年南京理工大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025年南京理工大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年南京理工大学计算机考研复试机试真题

2025年南京理工大学计算机考研复试上机真题

历年南京理工大学计算机考研复试上机真题

历年南京理工大学计算机考研复试机试真题

更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream

N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

南京理工-树的高度

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

树是一种特殊的图结构,有根树是一个有固定根的树。现在给定一棵有根树,编程求出树中所有节点到指定的根节点最远距离。

输入输出格式
输入描述:

第一行是两个整数N,M(1<=N<=10000,1<=M<=N),表示数的顶点数和根节点的编号,接下来N-1行,每行两个整数u,v(1<=u,v<=N),表示编号为u的节点和编号为v的节点间有一条边。

输出描述:

输出距离根节点最远的点到根的距离。

输入输出样例
输入样例#:
5 5 1 2 1 4 1 5 2 3
输出样例#:
3

代码一

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int n, m;
  6. cin >> n >> m;
  7. //构建邻接表
  8. //adj[u]存储与节点u直接相连的所有邻居节点
  9. vector<vector<int>> adj(n + 1); //默认索引从0开始 所以要N+1
  10. //因为树是无向的 u和v要互相添加到对方的邻接表中
  11. for(int i = 0; i < n-1; i++)
  12. {
  13. int u, v;
  14. cin >> u >> v;
  15. adj[u].push_back(v);
  16. adj[v].push_back(u);
  17. }
  18. //bfs初始化
  19. vector<int> distance(n + 1, -1);//这个ditance数组存距离
  20. queue<int> q;//队列来BFS
  21. distance[m] = 0;//根节点入队
  22. q.push(m);
  23. //bfs遍历
  24. //从队列取出节点u 遍历u的所有邻居v
  25. while(!q.empty())
  26. {
  27. int u = q.front();
  28. q.pop();
  29. for(int v : adj[u])
  30. {
  31. if(distance[v] == -1)
  32. {
  33. distance[v] = distance[u] + 1;
  34. q.push(v);
  35. }
  36. }
  37. }
  38. int maxdist = 0;
  39. for(int i = 1; i <= n; i++)
  40. {
  41. if(maxdist < distance[i]) maxdist = distance[i];
  42. }
  43. cout << maxdist << endl;
  44. return 0;
  45. }

代码二

  1. #include<iostream>
  2. #include<queue>
  3. #include<vector>
  4. using namespace std;
  5. int main()
  6. {
  7. int N,M;
  8. cin >> N >> M;
  9. vector<vector<int>>Tree(N+1);
  10. vector<int> dist(N + 1, -1);
  11. for (int i = 0; i < N - 1; i++) {
  12. int x, y;
  13. cin >> x >> y;
  14. Tree[x].push_back(y);
  15. Tree[y].push_back(x);
  16. }
  17. queue<int>a;
  18. a.push(M);
  19. dist[M] = 0;
  20. int ans = 0;
  21. while (!a.empty()) {
  22. int b = a.front();
  23. a.pop();
  24. for (int j = 0; j < Tree[b].size(); j++) {
  25. int x = Tree[b][j];
  26. if (dist[x] != -1)
  27. continue;
  28. dist[x] = dist[b] + 1;
  29. a.push(x);
  30. if (dist[x] > ans)
  31. ans = dist[x];
  32. }
  33. }
  34. cout << ans << endl;
  35. return 0;
  36. }

代码三

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<vector<int>> adj; // 邻接表
  4. vector<bool> visited;
  5. int max_depth = 0;
  6. void dfs(int node, int depth) {
  7. visited[node] = true;
  8. if (depth > max_depth) {
  9. max_depth = depth;
  10. }
  11. for (int neighbor : adj[node]) {
  12. if (!visited[neighbor]) {
  13. dfs(neighbor, depth + 1);
  14. }
  15. }
  16. }
  17. int main() {
  18. ios::sync_with_stdio(false);
  19. cin.tie(nullptr);
  20. int N, M;
  21. cin >> N >> M;
  22. adj.resize(N + 1); // 节点编号1~N
  23. visited.resize(N + 1, false);
  24. for (int i = 0; i < N - 1; ++i) {
  25. int u, v;
  26. cin >> u >> v;
  27. adj[u].push_back(v);
  28. adj[v].push_back(u);
  29. }
  30. dfs(M, 0);
  31. cout << max_depth << endl;
  32. return 0;
  33. }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 11:01:01

微信小程序uniapp-vue英语在线学习系统每日签到打卡

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万…

作者头像 李华
网站建设 2026/4/16 10:18:39

1.1 一维数组(markdown版)

一维数组简介 数组是最简单的&#xff0c;也最基础的数据结构。数组是一个有序的数据集合&#xff0c;用索引&#xff08;或者叫下标&#xff09;访问数据。在大多数编程语言&#xff0c;比如C/C/java/javascript中&#xff0c;数组的索引都是以0开始。它的逻辑结构是一段连续…

作者头像 李华
网站建设 2026/4/15 14:22:00

在 Cloud SQL for PostgreSQL 上启用 pgvector

本文档记录了如何在 Google Cloud SQL (PostgreSQL 13) 实例上启用 pgvector 扩展&#xff0c;以支持向量数据库功能&#xff08;如向量存储和相似度搜索&#xff09;。 1. 简介 pgvector 是 PostgreSQL 的一个开源扩展&#xff0c;用于存储和查询向量嵌入&#xff08;Vector E…

作者头像 李华
网站建设 2026/4/16 6:03:07

Cordova与OpenHarmony营养管理系统

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。 营养管理的重要性 营养管理是健康运动的重要组成部分。通过Cordova框架与OpenHarmony的数据管理能力&#xff0c;我们可以构建一个完整的营养管理系统。本文将介绍如何实现这一功能。 食物数据…

作者头像 李华
网站建设 2026/4/16 6:04:12

letcode数据库题联系

书籍表 Books&#xff1a; ----------------------- | Column Name | Type | ----------------------- | book_id | int | | name | varchar | | available_from | date | ----------------------- book_id 是这个表的主键&#xff08;具有唯一值…

作者头像 李华