qduoj 80 树结构重逢(树形DP)

动态规划--树形DP 动态规划--树形DP 1、什么是树型动态规划 顾名思义,树型动态规划就是在“树”的数据结构上的动态规划,平时作的动态规划都是线性的或者是建立在图上的,线性的动态规划有二种方向既向前和向后,相应的线性的动态规划有二种方法既顺推与逆推,而树型动态规划是建立在树上的,所以也相应的有二个方向:     1、叶->根:在回溯的时候从叶子节点往上更新信息    2、根 - >叶:往往是在从叶往根d... 阅读详情
题意:

给定一颗包含n个节点的无根树,并且把节点从1-n编号。

现在让你求对于每个点,求出所有点到这个点的距离的和(距离当然是最短距离了..)。


思路:跟HDU3899一毛一样的思路,注意sum要开long long。


代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
typedef long long ll;
const int maxn = 2e5+5;
vector<int> g[maxn];
ll cnt[maxn], sum[maxn];

void dfs(int x, int fa)
{
    cnt[x] = 1; sum[x] = 0;
    for(int i = 0; i < g[x].size(); i++)
    {
        int to = g[x][i];
        if(to == fa) continue;
        dfs(to, x);
        cnt[x] += cnt[to];
        sum[x] += (sum[to]+cnt[to]*1);
    }
}

void dfs1(int x, int fa)
{
    for(int i = 0; i < g[x].size(); i++)
    {
        int to = g[x][i];
        if(to == fa) continue;
        sum[to] = sum[to]+(sum[x]-sum[to]-cnt[to]*1)+(cnt[x]-cnt[to])*1;
        cnt[to] += (cnt[x]-cnt[to]);
        dfs1(to, x);
    }
}

int main(void)
{
    int n;
    while(cin >> n)
    {
        for(int i = 0; i < maxn; i++)
            g[i].clear();
        for(int i = 1; i < n; i++)
        {
            int u, v;
            scanf("%d%d", &u, &v);
            g[u].push_back(v);
            g[v].push_back(u);
        }
        dfs(1, 0);
        dfs1(1, 0);
        for(int i = 1; i <= n; i++)
            printf("%lld\n", sum[i]);
    }

    return 0;
}



2024最新Typora配置指南:从安装到打造学术写作环境(含LaTeX/参考文献解决方案) 本文提供2024年最新Typora配置指南,详细讲解如何从安装开始,结合Pandoc、Zotero和LaTeX,打造高效的学术写作环境。指南涵盖Typora深度定制、学术主题配置、参考文献自动管理以及一键生成出版级PDF的完整解决方案,旨在帮助科研人员和学生实现内容与格式分离,大幅提升论文写作效率。 阅读详情

相关推荐

实用电路精讲系列---仪表放大器

摘要 仪表放大器通过三级运放架构实现高共模抑制比(CMRR>100dB)和精密差分放大,其核心是第一级同相运放提供高输入阻抗和可调增益(G=1+2R/RG),第二级差分运放消除共模干扰。具有低失调(≤50μV)、低温漂(≤0.6μV/℃)特性,广泛应用于智能断路器电流监测、ECG心电信号放大等场景。典型电路采用LTC1049运放,通过匹配电阻网络实现199倍差分增益,结合输出缓冲确保信号稳定性。设计时需注意输入共模电压范围限制和增益电阻精度,优选集成IC(如AD620、INA128)以规避分立元件匹配

weixin_40590799的博客 2077

【面试题】求包含n个节点(从1到n,n个节点)的所有二叉搜索树

二叉搜索树满足的条件 当前根节点的值大于左子树节点的值 当前根节点的值小于右子树节点的值 左右子树同样是二叉搜索树 根据上述规则可以看出,根节点值不同,形成的二叉搜索树就不同,那么[1:n]范围内的n个数就有n个不同的选择。 [1:i−1]这i-1个数在其左子树上,[i+1:n]这n-i个数在其右子树上。 通过[1:i−1]这i-1个数可以构成多个不同的二叉搜索树,假设是leftT...

mmwwxx123的博客 5136

携程酒店数据爬取进阶:动态接口破解与反反爬策略实战

本文详细解析了携程酒店数据爬取的进阶技巧,包括动态接口参数破解、反爬虫策略对抗及企业级采集方案实现。重点介绍了eleven参数的生成逻辑、动态Cookie维护方法,以及如何应对携程的请求指纹检测和行为模式识别。通过实战案例,帮助开发者高效获取酒店价格数据,同时遵守行业规范。

eee77的博客 1081

51Nod 2282 树的深度 c/c++题解

题目描述 给出一棵n个节点的树,节点编号为1-n(根节点编号为1,且根节点深度为1),求这棵树的深度(树中节点的最大层次)。 例如: 1─2─4─5 └─3 其中1-2-4-5这条边是最长的,所以树的深度为4。 输入 第一行:1个数n(1 < n <= 1000),表示树的节点数量。 后面n-1行:每行2个数x y,表示节点x是节点y的父节点(1 <= x, y <= n...

东瓜blog 2956

使用Metasploit生成木马控制Windows系统

使用Metasploit生成木马控制Windows系统

weixin_56956399的博客 2508

Hypermesh到Abaqus CEL网格转换全攻略:解决欧拉体导入难题

本文详细解析了Hypermesh到Abaqus CEL网格转换的全流程,重点解决欧拉体导入难题。通过单元类型转换、INP文件编辑和多组件合并技术,实现流固耦合仿真的高效前处理。文章包含实用脚本和工程案例,帮助工程师突破ABAQUS CEL分析中的网格转换瓶颈。

weixin_30832143的博客 191

qduoj 树结构重逢 (两遍深搜)

描述 给定一颗包含n个节点的无根树,并且把节点从1-n编号。现在让你求对于每个点,求出所有点到这个点的距离的和(距离当然是最短距离了..)。输入 第一行包含一个正整数n ( n <= 100000 ),表示节点的个数。 后面(n - 1)行,每行两个整数(u, v)表示树的边u-v。输出 每行一个整数,第i(i = 1,2,…n)行表示所有节点到第i个点的距离之和。(i到i节点的距离为0)样

cysjiang的博客 535

NuPlayer 之 Renderer

触发postDrainAudioQueue_l()或postDrainVideoQueue()开始渲染。解码器输出数据 → NuPlayer::Decoder::onMessageReceived。音频数据存入mAudioQueue,视频数据存入mVideoQueue。• 每次写入后通过mNotifyConsumed通知解码器。• 通过AudioSink::write()写入音频设备。• 根据VSync信号和音频时钟调整渲染时机。• 通过Surface直接提交给显示系统。

aningxiaoxixi的博客 316

QDU 80-树结构重逢-树形dp-模板

题目描述: 给定一颗包含n个节点的无根树,并且把节点从1-n编号。 现在让你求对于每个点,求出所有点到这个点的距离的和(距离当然是最短距离了…)。 输入描述: 第一行包含一个正整数n ( n <= 100000 ),表示节点的个数。 后面(n - 1)行,每行两个整数(u, v)表示树的边u-v。 输出描述: 每行一个整数,第i(i = 1,2,…n)行表示所有节点到第i个点的距离之和。(i...

Nothing_but_Fight的博客 403

3.嵌入式控制器EC学习,源码框架(60/64端口)(一)

服务函数剖析 上一篇讲到while循环会一直查询十六个标志位是否满足要求,一旦其中某个标志位为1时,程序将会执行相应的服务函数,而执行服务函数是通过函数指针(service_table[ _R1 ])();来实现的。接下来我们分别来看看这十六个服务函数分别包含了哪些内容。 16个函数的函数名如下: const FUNCT_PTR_V_V code service_table[16] = { // Hi-Level Service Service_PCI, // Host 6

qq_30135687的博客 4160

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1738

QDU 6-GZS and String-字符串匹配的思维题

Description GZS has two strings s and t. In each step, GZS can select arbitrary character c of s and insert any character d (d ≠ c) just after it. GZS wants to convert s to t. But is it possible? Inpu...

Nothing_but_Fight的博客 347

【WiFi】T830 MT7992 WMM测试修改操作说明

WiFi WMM(Wi-Fi Multimedia)是Wi-Fi联盟推出的一项技术,用于优化无线网络中的多媒体内容传输。WMM通过优先处理不同类型的数据流来改善网络性能,特别是在网络拥堵时。:WMM通过提供服务质量支持,确保语音、视频和其他多媒体应用在无线网络中获得优先处理。这有助于减少延迟和抖动,改善用户体验。:WMM将数据流分为四个优先级队列:语音、视频、最佳效果(Best Effort)和背景(Background)。语音和视频流通常被赋予更高的优先级,以确保它们在网络中得到及时传输。

wgl307293845的博客 1022

树型DP基础题目总结

树的最大独立集树的重心 树的重心被定义为:对于一棵n个结点的无根树,找到一个点,使得把树变成以该点为根的有根树的时候,最大子树的结点数最小。 输入数据: 结点数N 无向边N-1条 输出数据: 重心为哪个点 最大子树的结点数 对无根树进行DFS,求取每个结点对应的最大子树的节点数,最后使整个值最小即可。#include <cstdio> #include <cstdlib> #include <c

100days 418

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

QDU___反转数字

反转数字 Description 输入一个 c 语言 4字节 int 范围内的数字,输出它反转后的数字。比如12345反转后是54321,-12345反转后是-54321。如果反转后的数字不在 int 范围内就输出0; Input 每行一个 int 范围内的数字,以 EOF 结尾。 Output 输出反转后的数字,每行一个 Sample Input 1 123...

~ 602

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Python3】【树形dp】uva10253 Series-Parallel Networks

设“共n个叶子,且每个非叶节点至少有两个子节点”的树的数量为f[n],再乘2就是本题答案。 设状态d(i,j)表示每棵子树最多包含i个叶子、一共有j个叶子的树的个数。于是f(n)=d(n-1,n)。假设恰好包含i个叶子的子树有p棵,那么这些树的组合数等于从f(i)棵树中选择p棵树的方案数,即C(f(i)+p-1,p),再去乘上剩下的(包含叶子树少于i的)子树的方案数d(i-1,j-p*i),因此...

weixin_34397291的博客 250

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【算法竞赛进阶指南】CH5401 没有上司的舞会 树形dp

Ural大学有N名职员,编号为1~N。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。 现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。 在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。 输入格式 第一行一个整数N。 接下来N行,第 i 行表示 i...

zhaohaibo的博客 674

重逢

    昨天看了《爱情呼叫转移》,对片中重重出现的美女印象不深,但是结尾却带来暖暖的感觉。在茫茫人海中重逢,也许是这个世界上最让人欣慰的事。命运真是个奇怪的东西,它可以让两个素昧平生的人走在一起,也能让亲近的人咫尺天涯不能相遇。也许陌路相逢叫做缘,别而重逢才是缘分。毕业时,每天都会听《祝福》,特别喜欢“若有缘有缘就能期待明天,你和我重逢在灿烂的季节”,现在又领悟了另外两句“几许愁几许忧人生难免苦与

大漠飞雪有话说 604

turtle库绘制树

from turtle import Turtle, mainloop def tree(plist, l, a, f): """ plist is list of pens l is length of branch a is half of the angle between 2 branches f is factor by which branch is

Mind_programmonkey的博客 3119

【jzoj5055】【GDOI2017模拟二试4.12】【树上路径】【点分治】

题目大意给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。解题思路直接点分即可。code#include<set> #include<cmath> #include<cstdio> #incl

inklutcuah’s blog 1055

久违的重逢

久违的重逢

ygh1121的专栏 329

【qduoj】【数组合并】

题目: Description   现在呢有两个整形数组,a[n]和b[m],而且已经知道这两个数组都是非降序数组。现在呢就有一个工作需要你来完成啦。对于a中的每个元素a[i]在b中寻找&lt;=a[i] 的元素个数,个数记为x[i]。但是我们并不关心每个x[i],现在只要你计算所有x[i]的和就可以啦。 Input   输入包含单组样例第一行两个整数 n,m 第二行n个整数代表a数组...

哇哈哈哈的博客 288

QDUOJ-数数字-异或运算

Description 给你一个整数数列,保证只有一个数出现过奇数次,输出它。 Input 多组测试数据。 每组测试数据第一行为一个整数n,代表该数列元素个数。(1 <= n <= 500000) 第二行为n个整数ai,以空格隔开。(-1000000 <= ai <= 1000000) Output 输出一行表示这个出现奇数次的数。 Sample Input 5 2 3 2 3 1 7 6 6 6 2 6 6 6 Sample Output 1 2 核心思想: 异或运算,ans异

Nothing_but_Fight的博客 385

Lightoj 1011 Marriage Ceremonies(状压dp入门 or km板子)

题意:给你n*n的矩阵,a[i][j]代表第i个男人和第j个女人之间的满意度,求男女一一配对后,最大的满意度之和。(n 思路:可以直接套KM板子,n^3复杂度,因为n比较小,也可以用状压做,n^2*2^n复杂度 转移方程:dp[i][sta|(1 代码: #include using namespace std; const int maxn = 17; int dp[ma

CillyB的博客 3024

2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 HDU 6212 1007 Zuma (区间DP)

题意:给你一串01串,你可以在任意位置插入0或1,有三个及以上的连续的相同的会消去,会有连锁反应,问至少插 入几次能消完。 思路:原题。。BZOJ 1032// POJ 2915。。 解法可以看这篇文章:点击打开链接 代码(直接用了这份:点击打开链接): #include using namespace std; int p[26]; int colors[26]

CillyB的博客 2425
上一篇: HDU 3899 JLUCPC (树形DP)
下一篇: codevs 1427 特种部队 (双路DP)
cillyb
博客等级 码龄11年 225粉丝 497原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值