思路:

设$sum[i]表示i的子树中a[i]的和$

$b[1]=\Sigma a[i]*dis[i] = \Sigma _{i=2} ^n sum[i]$

$b[x]-b[fa[x]]=sum[1]-2*sum[x]$

$sum[1]={\Sigma_{i=2}^n (b[x]-b[fa[x]])+2*b[1] \over n-1}$

$求出sum[1]以后根据a[x]=sum[x]-\Sigma_{v是x的儿子} sum[v]带入求出其它值即可$

$复杂度O(n)$

//By SiriusRen
#include <cstdio>
#include <cstring>
using namespace std;
#define int long long
const int N=;
int n,xx,yy,first[N],next[N],v[N],tot,fa[N],rev[N],cnt,b[N],X;
long long sum[N],ans[N];
void add(int x,int y){v[tot]=y,next[tot]=first[x],first[x]=tot++;}
void dfs(int x){
rev[++cnt]=x;
for(int i=first[x];~i;i=next[i])if(v[i]!=fa[x])
fa[v[i]]=x,dfs(v[i]);
}
void dfs2(int x){
ans[x]=sum[x];
for(int i=first[x];~i;i=next[i])if(v[i]!=fa[x])
dfs2(v[i]),ans[x]-=sum[v[i]];
}
signed main(){
memset(first,-,sizeof(first));
scanf("%lld",&n);
for(int i=;i<n;i++)scanf("%lld%lld",&xx,&yy),add(xx,yy),add(yy,xx);
for(int i=;i<=n;i++)scanf("%lld",&b[i]);
dfs();
for(int i=;i<=n;i++)sum[]+=(b[i]-b[fa[i]]);
sum[]=(sum[]+*b[])/(n-);
for(int i=;i<=n;i++)X=rev[i],sum[X]=(sum[]-b[X]+b[fa[X]])/;
dfs2();
for(int i=;i<=n;i++)printf("%lld%c",ans[i],i!=n?' ':'\n');
}

BZOJ 3727 DP?推式子..的更多相关文章

  1. [HAOI2007]分割矩阵 DP+推式子

    发现最近好少写博客啊(其实是各种摆去了) 更一点吧 这道题要求最小化均方差,其实凭直觉来说就是要使每个块分的比较均匀一点,但是单单想到想到这些还是不够的, 首先f[i][j][k][l][t]表示以( ...

  2. Codeforces 288E - Polo the Penguin and Lucky Numbers(数位 dp+推式子)

    题目传送门 似乎我的解法和官方题解不太一样 纪念自己独立做出来的一道难度 2800 的题. 我们记 \(ans(x)\) 为 \([444...44,x]\) 的答案,显然答案为 \(ans(r)-a ...

  3. HZOJ 20190727 T2 单(树上dp+乱搞?+乱推式子?+dfs?)

    考试T2,考试时想到了40pts解法,即对于求b数组,随便瞎搞一下就oxxk,求a的话,很明显的高斯消元,但考试时不会打+没开double挂成10pts(我真sb),感觉考试策略还是不够成熟,而且感觉 ...

  4. LOJ 3399 -「2020-2021 集训队作业」Communication Network(推式子+组合意义+树形 DP)

    题面传送门 一道推式子题. 首先列出柿子,\(ans=\sum\limits_{T_2}|T_1\cap T_2|·2^{T_1\cap T_2}\) 这个东西没法直接处理,不过注意到有一个柿子 \( ...

  5. bzoj 3157 && bzoj 3516 国王奇遇记——推式子

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...

  6. bzoj 3157 & bzoj 3516 国王奇遇记 —— 推式子

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...

  7. BZOJ 3453 - tyvj 1858 XLkxc(插值+推式子)

    题面传送门 首先根据我们刚学插值时学的理论知识,\(f(i)\) 是关于 \(i\) 的 \(k+1\) 次多项式.而 \(g(x)\) 是 \(f(x)\) 的前缀和,根据有限微积分那一套理论,\( ...

  8. bzoj 3622 DP + 容斥

    LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[ ...

  9. sequence——强行推式子+组合意义

    sequence 考虑长度<=x的方案数F(x),然后(F(x)-F(x-1))*x贡献到答案里 n平方的做法可以直接DP, 感觉有式子可言, 就推出式子:类似coat,每个长度为i的计算i次. ...

随机推荐

  1. VS单元测试"未能加载文件或程序集,或它的某一个依赖项"

    Autofac.Core.DependencyResolutionException : An error occurred during the activation of a particular ...

  2. Jupyter Notebook 下安装 PHP 内核

    我最近被强烈安利了 Jupyter Notebook 这个交互式笔记本.然后试用了它自带的 Python 内核后,这个应用整体给我的感觉很不错,就去搜索了下它所支持的其它内核 Jupyter Kern ...

  3. 基于requests模块的cookie,session和线程池爬取

    目录 基于requests模块的cookie,session和线程池爬取 基于requests模块的cookie操作 基于requests模块的代理操作 基于multiprocessing.dummy ...

  4. Thesis Viva checklist

    This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...

  5. AtCoder ABC 085C/D

    C - Otoshidama 传送门:https://abc085.contest.atcoder.jp/tasks/abc085_c 有面值为10000.5000.1000(YEN)的纸币.试用N张 ...

  6. SSL/TLS 协议介绍

    SSL/TLS 协议(RFC2246 RFC4346)处于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持. 从协议内部的功能层面上来看,SSL/TLS 协议可分为两层: 1. SSL ...

  7. VNC Server Installation on CentOS 6.5

    In my case I have a fresh installed CentOS6.5 Server on which I will be installing the VNC-server so ...

  8. [TYVJ1730]二逼平衡树

    [TYVJ1730]二逼平衡树 题目 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查 ...

  9. UVa - 12661 - Funny Car Racing

    先上题目: 12661 Funny Car RacingThere is a funny car racing in a city with n junctions and m directed ro ...

  10. redis高可用,保证高并发

    目录 redis如何通过读写分离来承载读请求QPS超过10万+ redis replication以及master持久化对主从架构的安全意义 redis主从复制原理.断点续传.无磁盘化复制.过期key ...