jzoj3519
我們考慮將一個節點x的所有兒子的數都改成y
記lcm[x]表示一個點的所有子節點的lcm值
那麼我們會發現y*deg[x] 要被lcm[x]整除
那麼x就會比x所有子節點最小的數小,記為z
那麼x就是比z小的數中,可以整除lcm[x]/deg[x]的最大的數
會不會導致x不能整除它對應的lcm?不會
因為lcm[x]/deg[x]就是它所有子節點的lcm,可以整除x的所有子節點
#include<bits/stdc++.h>
using namespace std;
long long lcs[100010],ans,a[100010],vis[100010],n;
long long lcm(long long a,long long b){return a*b/__gcd(a,b);}
vector<int>v[100010];
void dfs(int x){
vis[x]=1;
if(a[x]!=0){
lcs[x]=1;
return;
}
long long sc=0,minn=1e15,sum=0;
lcs[x]=1;
for(int i=0;i<(int)v[x].size();i++)
if(vis[v[x][i]]==0){
dfs(v[x][i]);
sum+=a[v[x][i]];
sc++;
minn=min(minn,a[v[x][i]]);
lcs[x]=lcm(lcs[x],lcs[v[x][i]]);
}
lcs[x]*=sc;
long long m=minn-(minn%(lcs[x]/sc));
ans+=sum-m*sc;
a[x]=m*sc;
}
int main(){
freopen("pylon.in","r",stdin);
freopen("pylon.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=1;i<n;i++){
int x,y;
scanf("%d %d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
printf("%lld",ans);
}
jzoj3519的更多相关文章
随机推荐
- spring mvc 用cookie和拦截器实现自动登录(/免登录)
Cookie/Session机制详解:http://blog.csdn.net/fangaoxin/article/details/6952954 SpringMVC记住密码功能:http://blo ...
- 2018.10.23 NOIP模拟 行星通道计划(bit)
传送门 卡常题. 成功卡掉了作死写树套树的zxy. 然而对我的二维bit无能为力. 直接维护两棵bit. bit1[i][j]bit1[i][j]bit1[i][j]表示左端点小于等于iii,右端点小 ...
- 2018.09.29 bzoj3039: 玉蟾宫(悬线法)
传送门 悬线法的板子题. 悬线法只需要保存当期点向下最多多少个,把这个当成一条线,再处理出线绷直之后最多能向左右延展多少就行了. 代码: #include<bits/stdc++.h> # ...
- 2018.09.05 任务安排(斜率优化dp)
描述 这道题目说的是,给出了n项必须按照顺序完成的任务,每项任务有它需要占用机器的时间和价值.现在我们有一台机器可以使用,它每次可以完成一批任务,完成这批任务所需的时间为一个启动机器的时间S加上所有任 ...
- 2018.08.16 洛谷P3607 [USACO17JAN]序列反转(线性dp)
传送门 一道感觉比较简单的dp. 注意是要求翻转一个子序列而不是一段连续的数(被坑了很多次啊)... 看到数据范围果断开一个四维数组来dp一波. 我们显然可以用f[i][j][k][t]表示下标在[l ...
- Django入门与实践-第22章:基于类的视图
http://127.0.0.1:8000/boards/1/topics/2/posts/2/edit/ http://127.0.0.1:8000/ #boards/views.py from d ...
- nvarchar,varchar 区别
char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. nva ...
- day15(mysql之零碎知识)
数据完整性 实体完整性 实体: 表中一行(一行记录)代替一个实体 实体完整性的作用: 标识每一行数据不重复. 约束类型: 主键约束, 唯一约束,自动增长列. 主键约束: 标识该列唯一,非空. 注: ...
- 设置p标签可编辑
一,只可编辑,粘贴复制字段长度不正常 <p contenteditable="true" >这是一个可编辑内容的p标签啦啦~</p> 二,可编辑,可粘贴复制 ...
- codevs 1083
这道题是看了人家大牛的解题报告: 对了,要说明一下,(A+B)&1 ,表示,判断(A+B)是奇数否? 下面给出代码: #include<iostream> #include< ...