Description

吉丽YY了一道神题,题面是这样的:
“一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人。假设在i结点举行会议,所有人都从原住址沿着最短路径来到i结点,行走的总路程为b[i]。输出所有b[i]。”
吉丽已经造好了数据,但熊孩子把输入文件中所有a[i]给删掉了。你能帮他恢复吗?

Input

第一行一个整数n(2<=n<=300000)。
接下来n-1行,每行两个整数x,y,表示x和y之间有连边。
接下来一行由空格隔开的n个整数bi。

Output

输出一行由空格隔开的n个整数a[i]。
如果你觉得有多组解就任意输出其中一组。

Sample Input

2

1 2

17 31
Sample Output

31 17
HINT

Source

鸣谢Jcvb

如果没有Delayyy当时留下的题解根本不会做TAT果然人傻
另外Po姐写的更详细
PoPoQQQ

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define MAXN 300010
#define LL long long
#define GET (ch>='0'&&ch<='9')
using namespace std;
int n,top;
int deep[MAXN];
LL size1[MAXN],size2[MAXN],a1[MAXN],a2[MAXN],ans,suma,sumb,b[MAXN];
void in(int &x)
{char ch=getchar();x=0;while (!GET)    ch=getchar();while (GET) x=x*10+ch-'0',ch=getchar();
}
struct edge
{int to;edge *next;
}e[MAXN<<1],*prev[MAXN];
void insert(int u,int v)    {e[++top].to=v;e[top].next=prev[u];prev[u]=&e[top];}
void dfs(int x,int f)
{for (edge *i=prev[x];i;i=i->next)if (i->to!=f){size2[i->to]=size1[i->to]=b[x]-b[i->to];a1[i->to]=a2[i->to]=1;deep[i->to]=deep[x]+1;dfs(i->to,x);size1[x]-=size2[i->to];a1[x]-=a2[i->to];}suma+=size1[x]*deep[x];sumb+=a1[x]*deep[x];
}
int main()
{in(n);int u,v,x;for (int i=1;i<n;i++)   in(u),in(v),insert(u,v),insert(v,u);for (int i=1;i<=n;i++)  in(x),b[i]=x;a1[1]=2;dfs(1,0);ans=(b[1]*2-suma)/sumb;for (int i=1;i<=n;i++)  printf(i!=n?"%lld ":"%lld\n",(a1[i]*ans+size1[i])>>1);
}

【PA2014】【BZOJ3727】Zadanie相关推荐

  1. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)

    本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...

  2. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  3. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  4. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  5. 【C++】【九】栈的应用

    [C++][九]栈的应用 就近匹配原理及其步骤: 中缀转后缀:

  6. 【跃迁之路】【495天】程序员高效学习方法论探索系列(实验阶段252-2018.06.15)...

    @(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. ...

  7. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  8. 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...

    实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...

  9. 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅

    这是我悲惨的接近爆零的一次考试,但是本蒟蒻不能放弃,还是要总结的QAQ 答题卡 [题目背景] 八月是个悲惨的月份.先不谈炎热的天气,对于新生来说,八月意味着军训: 而对于高二高三的同学来说,八月意味着 ...

  10. 【跃迁之路】【554天】程序员高效学习方法论探索系列(实验阶段311-2018.08.13)...

    @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航,从今以后,, 每月1日,我会将自己个人上月收入的1%计入[跃迁之路]奖励金池,积累到足够金额后 ...

最新文章

  1. GDCM:gdcm::LTComp的测试程序
  2. 一个简单的workaround - 如何使用SAP Spartacus中的private API
  3. ASP.NET Core 1.0开发Web API程序
  4. Node.js文件操作二
  5. Anylogic 仿真建模(一)
  6. Q1 SpringBoot启动类如何作为配置类注册进Spring容器的?(ok)
  7. 伪随机数与采样(sampling)
  8. 五款app原型设计工具对比
  9. 有了linux基础还学习学哪些,学linux的前途和好处有哪些
  10. C语言课设家庭财务小管家(大作业)
  11. 什么是服务器防护,什么是硬防?什么是软防?
  12. C#对Java--微软的反击
  13. doc创建php文件,PHP读取创建txt,doc,xls,pdf类型文件
  14. 一篇关于批处理文件的经典文章
  15. 微信点餐小程序开发_分享微信点餐小程序可以实现哪些功能
  16. android 分享给好友,如何将安卓手机安装的APP分享给好友简单方法分享
  17. 手机打字软件如何测试打字快,手机打字学好拼音最笨的方法 手机打字怎么练才能快...
  18. MySQL入门第十天(数据库编程)
  19. 2022 之Python操作 Excel,xlrd 与 xlwt 模块一文掌握
  20. 如何优雅的抄袭代码?天下代码一大抄,这才是正确的姿势

热门文章

  1. templete中使用v-for
  2. css3画步骤条 矩形向右箭头
  3. cyrus-sasl
  4. 矩阵的QR分解c语言编程,[矩阵的QR分解系列五] Eigen中的QR分解
  5. 别人对自己不好,自己对自己好一点
  6. 【LLM】金融大模型场景和大模型Lora微调实战
  7. RESTful 是什么?一起来理解 RESTful 架构
  8. ios相机内存_手机内存清理了还是不够用?不知道这些方法,真是太可惜了
  9. bzoj1778: [Usaco2010 Hol]Dotp 驱逐猪猡(概率DP+高斯消元)
  10. redis 17.内存优化(小的聚合类型数据的特殊编码处理、内存分配、尽可能使用散列表(hashes))