CCF-CSP题解 201503-4 网络延时
2024-08-31 02:26:43
求树的直径。
两遍\(dfs\)就好了。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>
const int maxn = 10000;
const int maxm = 10000;
using namespace std;
int to[(maxn + maxm) * 2 + 10];
int nex[(maxn + maxm) * 2 + 10];
int head[maxn + maxm + 10], cnt = 0;
void addEdge(int a, int b)
{
to[cnt] = b; nex[cnt] = head[a]; head[a] = cnt++;
to[cnt] = a; nex[cnt] = head[b]; head[b] = cnt++;
}
int ans, depth;
void dfs(int x, int f, int d)
{
if (d > depth)
ans = x, depth = d;
for (int i = head[x]; i != -1; i = nex[i])
{
int l = to[i];
if (l != f)
dfs(l, x, d + 1);
}
}
int main()
{
int n, m;
scanf("%d%d", &n, &m);
memset(head, -1, sizeof(head));
for (int i = 2, temp; i <= n; i++)
{
scanf("%d", &temp);
addEdge(i, temp);
}
for (int i = 1, temp; i <= m; i++)
{
scanf("%d", &temp);
addEdge(i + n, temp);
}
ans = depth = -1;
dfs(1, 1, 0);
depth = -1;
dfs(ans, ans, 0);
printf("%d\n", depth);
return 0;
}
最新文章
- Dapper where Id in的解决方案
- CentOS下Hadoop-2.2.0集群安装配置
- Dojo动画原理解析
- Codeforce 493c
- jquery常用正则表达式
- jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。
- IOS中 如何去除Tabview里面cell之间的下划线
- lucene和egg项目的异同点
- NSURLConnection、NSURLSession
- Android:控件ListView列表项与适配器结合使用
- spring mvc controller json数据
- X86在逻辑地址、线性地址、理解虚拟地址和物理地址
- SharePoint 2013 InfoPath 无法保存下列表单
- chrome正确的打开方式
- Jmeter下进行ip伪造
- Android蓝牙通信功能开发
- Java考试题之五
- Java 学习笔记(2)——基本语句、控制结构
- 20155338 2016-2017-2《Java程序设计》第1周学习总结
- IIS解决上传文件大小限制