首页 > 其他分享 >2023.04.08 定时测试随笔

2023.04.08 定时测试随笔

时间:2023-04-08 20:11:49浏览次数:45  
标签:head ll int 08 2023.04 maxn 随笔 节点 dis

T2 [ZJOI2007] 时态同步

传送门:luogu P1131


题目要求我们用最少的代价使根节点到每个叶子节点的距离相等
那如何使代价最小呢,对于下面这种情况
image
对于有同一个父亲节点的两个叶子节点,一个的代价为5,一个代价为3,他们都加了一个
代价3,这样我们可以把3加到父亲节点到根节点的树枝上,这样可以省去重复加的代价,
也就是说,调整越靠近根节点的树枝我们的代价就越少,那么我们从下向上更新,使每一
个子树中的节点的深度相同,每次调整的代价就是ans += (dis[u] - (dis[v] + e[i].w));
\(dis[u]\) 是指 \(u\) 到叶子节点的最大深度;


代码:

#include <bits/stdc++.h>

typedef long long ll;
using namespace std;

const int maxn = 5e5 + 5;
int n, tot, head[maxn], cd[maxn];
ll maxx;
struct edge {
	int v, nxt;
	ll w;
} e[maxn];

void add(int u, int v, int w) {
	e[++ tot] = {v, head[u], (ll)w};
	head[u] = tot;
}

ll dis[maxn], ans;
void dfs(int u, int fa) {
	for (int i = head[u]; i; i = e[i].nxt) {
		int v = e[i].v;
		if (v == fa) continue ;
		dfs(v, u);
		dis[u] = max(dis[u], dis[v] + e[i].w);
	}
	for (int i = head[u]; i; i = e[i].nxt) {
		int v = e[i].v;
		if (v == fa) continue ;
		ans += (dis[u] - (dis[v] + e[i].w));
	}
}

void read() {
	int s;
	scanf("%d%d", &n, &s);
	for (int i = 1, u, v, w; i < n; ++ i) {
		scanf("%d%d%d", &u, &v, &w);
		add(u, v, w), add(v, u, w);
	}
	dfs(s, 0);
	printf("%lld\n", ans);
}

int main() {
	read();
	return 0;
}

标签:head,ll,int,08,2023.04,maxn,随笔,节点,dis
From: https://www.cnblogs.com/florence25/p/17299143.html

相关文章

  • 计算机408考研攻略及总结
    复习资料王道单科书数据结构严蔚敏计算机组成原理白中英计算机组成原理唐朔飞计算机网络谢希仁操作系统汤子瀛真题王道真题讲解模拟题王道模拟题五轮复习法第一轮学习王道四门单科书第一轮只需要做选择题一两天搞不懂的内容直接跳过例子:组成原理的二......
  • 『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidit
    作者:黎跃春,在上一小节中我们在函数参数中使用storage这个关键字时,当前的函数必须是internal或者private类型。在本小节中,我(微信:liyc1215)将重点为大家介绍属性和函数的使用权限。状态变量、函数的权限一、public备注:为了演示方便,我直接通过https://remix.ethereum.org/来进行演示。p......
  • 数据库应用2023-04-08
    msqllike_vs%InMySQL,theunderscore(_)andpercentsign(%)arewildcardsusedinLIKEexpressionsforpatternmatching.Theunderscorematchesanysinglecharacter,whilethepercentsignmatchesanysequenceofzeroormorecharacters.Forexa......
  • 20230408---pg_dump: [归档 (db)] 与数据库 "xxx" 联接失败: 致命错误: 对用户"postg
    pg_dump:[归档(db)]与数据库"wpfc"联接失败:致命错误:  对用户"postgres"的对等认证失败 不修改pg_hba.conf的情况下进入postgres用户执行 cd/homemkdirpostgreschown-Rpostgres:postgres/home/postgres/chmod760/home/postgres/supostgrespg_dump-U......
  • 20230408-Python-循环语句-day5
    循环4月7-8Python提供了for循环和while循环循环类型描述while在给定的判断条件作为true是执行循环体,是否退出循环体for重复执行语句循环控制语句控制语句描述break语句在语句块执行过程中终止循环,并且跳出循环整个循环continue语句......
  • cxLookAndFeelController1控件换肤(08)
    cxLookAndFeelController1控件,只是对设计窗口的控件进行换肤,不对Form标题栏进行换肤,且在设计时,即可立即看到效果。 ......
  • 连网技术2023-04-08
      LAN交换机有三种工作模式:直通模式、存储转发模式和免分片模式。直通模式:数据包到达交换机后,直接转发给目标MAC地址,不做任何处理。直通模式是最快的交换机模式,但它并不能检查数据包的错误,因此在不可靠的网络环境中不建议使用。存储转发模式:数据包到达交换机后,首先会......
  • 洛谷P1308统计单词数,strtok函数的使用以及对于单词分割的一些思考
    [NOIP2011普及组]统计单词数题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意......
  • 2023.04.08 定时测试随笔
    T1[NOIP2006提高组]作业调度方案(模拟)传送门:luoguP1131约束条件:对于同一个工件,第\(i\)道工序必须要在第\(i-1\)道工序结束之后才能开始一个机器每一刻只能加工一道工序必须要按照题目给的顺序安排下一个工序关于安排顺序:一个非常神器的东西考试的时候......
  • 程序设计应用2023-04-08
    visualstudiocode里面可以安装docker插件newdevcontainer  db_index=true普通索引unique=true唯一索引classMeta:  indexes=[]  unique_together pythonmanage.pymakemigrations 现根据类生成迁移脚本pythonmanage.pymigrate 打脚本 ......