Codeforces_734_E
2024-10-08 05:16:51
http://codeforces.com/problemset/problem/734/E
每次操作可以把连通的同颜色的点全部换颜色,缩点,找直径,第一遍dfs找起点,第二遍dfs求直径。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std; int c[],d[] = {},n;
vector<int> v[]; void dfs(int x,int pre)
{
for(int i = ;i < v[x].size();i++)
{
int t = v[x][i];
if(t == pre) continue;
d[t] = d[x]+(c[x]^c[t]);
dfs(t,x);
}
} int main()
{
scanf("%d",&n);
for(int i = ;i <= n;i++) scanf("%d",&c[i]);
for(int i = ;i < n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
dfs(,-);
int t = ,maxx = d[];
for(int i = ;i <= n;i++)
{
if(d[i] > maxx)
{
maxx = d[i];
t = i;
}
}
memset(d,,sizeof(d));
dfs(t,-);
maxx = d[];
for(int i = ;i <= n;i++)
{
maxx = max(d[i],maxx);
}
printf("%d\n",(maxx+)/);
return ;
}
最新文章
- Android测试提升效率批处理脚本(三)
- 解析PHP正则提取或替换img标记属性
- 杭电acm2029-Palindromes _easy version
- mysql 的2个关于事务和安全性的参数
- RHEL/CentOS/Fedora各种源(EPEL、Remi、RPMForge、RPMFusion)配置
- WinCE应用程序崩溃提示框的处理
- 20145305《JAVA程序设计》课程总结
- Maximum Subarray 解答
- 绘制FastMM内存分配流程图(小块内存分配)
- ODPS 下一个map / reduce 准备
- screen实现关闭ssh之后继续运行代码
- teamviewer试用期到期解决
- SMS Error code: +CMS
- Angular 学习笔记 ( CDK - Layout )
- xlrd模块;xlwt模块使用,smtp发送邮件
- ansible Api 2.3-2.4
- NuGet Install-Package报错解决Package Manager Console error - PowerShell version 2.0 is not supported. Please upgrade PowerShell to 3.0 or greater and restart Visual Studio.
- centos 支持安装libsodium
- 【转】Linux中包管理与定时任务
- hdu 1698+poj 3468 (线段树 区间更新)