首页 > 其他分享 >CF1060E 题解

CF1060E 题解

时间:2023-03-19 18:57:13浏览次数:57  
标签:int 题解 long 传送门 CF1060E include

前言

题目传送门!

更好的阅读体验?

提供一种更加麻烦的换根 DP 写法。

思路

代码

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
const int N = 2e5 + 5;
struct Edge {int now, nxt;} e[N << 1];
int head[N], cur;
void add(int u, int v)
{
	e[++cur].now = v, e[cur].nxt = head[u];
	head[u] = cur;
}
ll sum[N], siz[N][2];
void dfs(int u, int fa)
{
	siz[u][0] = 1;
	for (int i = head[u]; i; i = e[i].nxt)
	{
		int v = e[i].now;
		if (v == fa) continue;
		dfs(v, u);
		siz[u][0] += siz[v][1], siz[u][1] += siz[v][0];
		sum[u] += (sum[v] + siz[v][0]);
	}
}
ll ans[N];
void DFS(int u, int fa, int dep)
{
	for (int i = head[u]; i; i = e[i].nxt)
	{
		int v = e[i].now;
		if (v == fa) continue;
		ans[v] = ans[u] + siz[1][dep & 1] - (siz[v][0] + siz[v][1]);
		DFS(v, u, dep + 1);
	}
}
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i < n; i++)
	{
		int u, v;
		scanf("%d%d", &u, &v);
		add(u, v), add(v, u);
	}
	dfs(1, 0), ans[1] = sum[1], DFS(1, 0, 0);
	ll zlt = 0;
	for (int i = 1; i <= n; i++) zlt += ans[i];
	cout << zlt / 2;
	return 0;
}

希望能帮助到大家!

标签:int,题解,long,传送门,CF1060E,include
From: https://www.cnblogs.com/liangbowen/p/17233918.html

相关文章

  • 3 月 15 日测试题解
    3月15日测试题解这学校的评测机我是真的吐了,\(\text{380pts}\rightarrow\text{300pts}\),电脑速度跟BZOJ有的一拼。一句话总结:简单,过于简单,但是在练习读题能力上十......
  • 3 月 19 日测试题解
    3月19日测试题解原来这就是AK的滋味吗,不过,我却完全没感到开心呢。T1题意给出两个整数\(a\),\(b\),重复以下操作直到\(a=b\):设\(a>b\),否则交换\(a\)与\(......
  • P5445 [APIO2019] 路灯 题解
    题目链接题目描述给你一个01串,有\(q\)个时刻,每个时刻要么把一位取反,要么问你在过去的所有时刻中有多少个时刻\(a\)和\(b-1\)之间都为1。题目分析观察题目,我们......
  • 2023.3.19 模拟赛题解
    银行取款题意在现代文明社会中,大家在诸如银行办理业务、车站买票等活动时都很文明,没有插队的现象,本着"先来先服务"的规矩。初赛已经结束了,凡凡的爸爸打算上银行去取点......
  • 【问题解决】Linux 下 VSCode IntelliSense 对 C 语言读写锁类型报错的问题
    如图下图所示,当我们想要使用C语言读写锁类型时,IntelliSense会提示如下未定义的错误:IntelliSense提示错误但是,如果忽略这些错误,直接`gcc-o`程序又没有问题。通......
  • 题解:【ARC112C】 DFS Game
    题目链接题目里面的注意点还是很多的,如果读错了题整个思路可能会一点都不对。首先是移动和选取硬币的操作是分开的,所以你移动到了一个有硬币的节点,将是你的对手获得硬币。......
  • .net6 docker部署,以及问题解决(附Dokerfile)
    搭建仓库,发布配置docker搭建私有仓库参考上文,搭建好私有仓库,成功访问http://127.0.0.1:5000/v2/_catalog之后:在VS右键=>添加=>Docker支持=>选择Linux,即可自动......
  • 蓝桥楼赛第23期-工作文件整理归类 题解
    题目描述实小楼同学平常的工作比较繁杂,经常需要处理各类文档,几天时间桌面上就累积了一堆不同类型和名称的文档,显得十分杂乱。实小楼想通过Python编写一个脚本,能够自动归......
  • Tree Depth P 题解
    TreeDepth题意\(~~~~\)对一个排列建立小根笛卡尔树,定义第\(i\)个位置的权值为其在笛卡尔树上的深度。求对于所有恰好有\(k\)个逆序对的排列,每个位置的权值和对一......
  • AGC012 题解
    chrislgjeztorAmledzaprofovelmizerdoscarmammeidhaalzengharkawymaynoxialgjeztorRupieillavasphotreywzidha[AGC012A]AtCoderGroupContest普及题......