树的直径+质因子——好题!cf1101D
/*
因为质因子很少
状态转移时用dp[u][i]表示结点u的第i个质因子所在的最大深度即可
等价于带限制的求直径
*/
#include<bits/stdc++.h>
#include<vector>
using namespace std;
#define maxn 200005
int n,a[maxn],ans;
vector<int>G[maxn],p[maxn],dp[maxn]; void dfs(int u,int pre){
for(int i=;i<G[u].size();i++){
int v=G[u][i];
if(v==pre)continue;
dfs(v,u); //枚举u,v中相等的质因子
for(int i=;i<p[u].size();i++)
for(int j=;j<p[v].size();j++)
if(p[u][i]==p[v][j]){
ans=max(ans,dp[u][i]+dp[v][j]);
dp[u][i]=max(dp[u][i],dp[v][j]+);
}
}
} void divide(int x,int u){//求出每个点的质因子
for(int i=;i*i<=x;i++)
if(x%i==){
p[u].push_back(i);
dp[u].push_back();
while(x%i==)x/=i;
}
if(x>){//对于所有点
p[u].push_back(x);
dp[u].push_back();
}
}
int main(){
cin>>n;
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)
if(a[i]!=){
divide(a[i],i);
ans=;
}
for(int i=;i<n;i++){
int u,v;
scanf("%d%d",&u,&v);
G[u].push_back(v);
G[v].push_back(u);
}
/*
for(int i=1;i<=n;i++){
for(int j=0;j<p[i].size();j++)
cout<<p[i][j]<<endl;
}
*/
dfs(,);
cout<<ans<<endl;
}
树的直径+质因子——好题!cf1101D的更多相关文章
- HDU4612 Warm up 边双(重边)缩点+树的直径
题意:一个连通无向图,问你增加一条边后,让原图桥边最少 分析:先边双缩点,因为连通,所以消环变树,每一个树边都是桥,现在让你增加一条边,让桥变少(即形成环) 所以我们选择一条树上最长的路径,连接两端, ...
- poj1985和poj1849(树的直径)
题目传送门:poj1985 树是连通无环图,树上任意两点之间的路径是唯一的.定义树上任 意两点u, v的距离为u到v路径上边权的和.树的直径MN为树上最长路 径,即点M和N是树上距离最远的两个点. 题 ...
- CF1101D GCD Counting(数学,树的直径)
几个月的坑终于补了…… 题目链接:CF原网 洛谷 题目大意:一棵 $n$ 个点的树,每个点有点权 $a_i$.一条路径的长度定义为该路径经过的点数.一条路径的权值定义为该路径经过所有点的点权的 GC ...
- lightoj 1094 Farthest Nodes in a Tree 【树的直径 裸题】
1094 - Farthest Nodes in a Tree PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- poj 2631 Roads in the North【树的直径裸题】
Roads in the North Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2359 Accepted: 115 ...
- poj 1985 Cow Marathon【树的直径裸题】
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 4185 Accepted: 2118 Case ...
- POJ 1985 Cow Marathon (模板题)(树的直径)
<题目链接> 题目大意: 给定一颗树,求出树的直径. 解题分析:树的直径模板题,以下程序分别用树形DP和两次BFS来求解. 树形DP: #include <cstdio> #i ...
- XTU 1267 - Highway - [树的直径][2017湘潭邀请赛H题(江苏省赛)]
这道题可能有毒……总之一会儿能过一会儿不能过的,搞的我很心烦…… 依然是上次2017江苏省赛的题目,之前期末考试结束了之后有想补一下这道题,当时比较懵逼不知道怎么做……看了题解也不是很懂……就只好放弃 ...
- poj1985&&第四次CCF软件认证第4题 求树的直径
Cow Marathon Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 4216 Accepted: 2137 Case ...
随机推荐
- Java生产环境下性能监控与调优详解
1:JVM字节码指令与 javapjavap <options> <classes>cd monitor_tuning/target/classes/org/alanhou/m ...
- canvas-nest.js 设置网页背景
只需要在HTML,body中加如这行代码就可以实现效果,可以在color中修改颜色 <!DOCTYPE html> <html> <head> <meta c ...
- window操作命令
netstat -ano 查看所有端口 netstat -ano|findstr "8005" 查看指定端口
- Excel如何快速渲染百万级别的数据
Excel主要经历1.查询2.渲染的方式 关于查询: 不同技术水平的人有不同的解决方案,目前我采用的是 1:多线程查询 2:一个异步后台线程每次查询100条便渲染,采用的“懒加载方式”,这样可以做到实 ...
- Servlet - HTTP协议相关
1. 术语 : 请求 : 客户端根据用户所给的地址信息将数据发送给服务器的过程 响应 : 服务器将请求的处理结果发送给浏览器的过程 2. HTTP协议 : 超文本传输协议 ( Hyper Text T ...
- windows常用
host文件位置:C:\Windows\System32\drivers\etc
- js简单图片切换
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- 二分+mu函数实质及应用(原理)!——bzoj2440好题
首先想到用二分来判断 不是平方数的倍数,即没有次数>=2的质因子显然用容斥原理,即所有答案-1个质因子的平方的所有倍数+2个质因子的所有平方倍...等价于对于每个数,如果它有奇数个质因子,那么其 ...
- 使用GDI+绘制的360风格按钮控件
将下面的代码拷贝到一个单元中,创建一个包,加入这个单元后安装.使用的时候设置好背景颜色,边框颜色,图标(png格式)相对路径的文件名称.这个控件可以利用PNG图像的颜色透明特性,背景色默认透明度为50 ...
- NX二次开发-UF_MODL_ask_angle_tolerance获取建模的角度公差
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_ui.h> UF_initialize() ...