首页 > 其他分享 >luoguP1131 时态同步

luoguP1131 时态同步

时间:2024-11-03 15:58:16浏览次数:1  
标签:std 时态 同步 luoguP1131 pr int first adj dis

有N个节点构成的电路树,编号为S的的节点为激发器,会产生电流并通过导线往下传递,给出电流在各边上传递递需要的时间w[i][j],可以花1个单位的代价将任意1条边的耗时加1,现要求电流同时到达所有叶子节点,求修改边的最小代价。
1<=N<=5E5; 1<=w[i][j]<=1E6

分析:自下而上dp,对于节点x,先算出以x为根的子树,x到叶子的最大距离,然后再次遍历所有子节点计算差值并累加。

#include <bits/stdc++.h>
using i64 = long long;

void solve() {
	int N, S;
	std::cin >> N >> S;
	S--;
	std::vector<std::vector<std::pair<int,int>>> adj(N);
	for (int i = 1; i < N; i++) {
		int x, y, z;
		std::cin >> x >> y >> z;
		x--, y--;
		adj[x].push_back({y, z});
		adj[y].push_back({x, z});
	}

	i64 ans = 0;
	std::vector<i64> dis(N);

	auto dfs = [&](auto self, int x, int p) -> void {
		for (auto &pr : adj[x]) if (pr.first != p) {
			self(self, pr.first, x);
			dis[x] = std::max(dis[x], dis[pr.first] + pr.second);
		}
		for (auto &pr : adj[x]) if (pr.first != p) {
			ans += dis[x] - dis[pr.first] - pr.second;
		}
	};

	dfs(dfs, S, S);
	std::cout << ans << "\n";
}

int main() {
	std::cin.tie(0)->sync_with_stdio(0);
	int t = 1;
	while (t--) solve();
	return 0;
}

标签:std,时态,同步,luoguP1131,pr,int,first,adj,dis
From: https://www.cnblogs.com/chenfy27/p/18523538

相关文章

  • 数据同步rsync
    数据同步rsyncRsync本地模式和远程模式1.安装yuminstall-yrsync2.命令语法本地模式rsync参数srcdest1.对文件同步[[email protected]]#rsync-avzP/var/log/messages/tmp/sendingincrementalfilelistmessages3,311,285100%84.50MB/s......
  • 【开题报告】基于Springboot+vue信阳市多目的地同步导航系统(程序+源码+论文) 计算机毕
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,信阳市的交通网络日益复杂,市民及游客在出行时面临着路线选择多样化、目的地分散化的挑战。传统的导航方式往往局限于单一目的地......
  • 【牛客训练记录】中国地质大学(武汉)2024年新生赛(同步赛)
    训练情况赛后反思B题大模拟急到红温了,WA了四发,未考虑到部分细节情况A题直接输出\(x-1\)即可。#defineintlonglongusingnamespacestd;voidsolve(){ intx;cin>>x; cout<<x-1; }signedmain(){ //intT;cin>>T;while(T--) solve(); return0;}B题......
  • 【shell脚本】使用 Shell 脚本比较和同步目录:自动化文件管理的利器
    原创日常运维文档在系统管理中,比较两个目录的内容是一项常见任务,尤其在数据备份和服务器维护时,它显得尤为重要。为此,我们可以使用Shell脚本来简化这个过程,实现自动化。下面将对一个名为compare_files.sh的脚本进行详细介绍,该脚本能够比较目录大小并使用rsync检查内容一......
  • Chromium127编译指南 Linux篇 - 同步第三方库以及Hooks(六)
    引言在成功克隆Chromium源代码仓库并建立新分支之后,配置开发环境成为至关重要的下一步。这一过程涉及获取必要的第三方依赖库以及设置钩子(hooks),这些步骤对于确保后续的编译和开发工作能够顺利进行起着决定性作用。本指南旨在详细阐述这些配置步骤的执行方法,为开发者提供清晰......
  • 进程的同步与互斥,特别是使用PV操作(也称为信号量操作)
    这道题目考察的知识点是进程的同步与互斥,特别是使用PV操作(也称为信号量操作)来实现进程间的同步和互斥。知识点相关内容:进程同步:指的是在多进程系统中,协调各个进程的执行顺序,使得它们能够按照一定的规则协同工作,避免出现数据不一致或者资源竞争等问题。进程互斥:指的是在多进......
  • 一款支持宽电压输入的同步降压电源管理芯片
    AP3464是一款支持宽电压输入的同步降压电源管理芯片,输入电压4-30V范围内可实现2.4A的连续电流输出。通过调节FB端口的分压电阻,设定输出1.8V到28V的稳定电压。AP3464具有优秀的恒压/恒流(CC/CV)特性。AP3464采用电流模式的环路控制原理,实现了快速的动态响应。......
  • 操作系统——进程同步互斥经典题目
    操作系统——进程同步互斥经典题目前言这里是操作系统课程中老师布置的作业,主要是关于进程同步互斥的考研真题。题目题目一有4个进程P1、P2、P3、P4。要求P1必须在P2、P3开始前完成,P2、P3必须在P4开始前完成,且P2和P3不能并发执行。试写出这4个进程的同步互斥算法。解答:......
  • Rollup 同步物化视图
    同步物化视图|StarRockshttps://docs.starrocks.io/zh/docs/using_starrocks/Materialized_view-single_table/同步物化视图本文介绍如何在StarRocks中创建、使用以及管理同步物化视图(Rollup)。同步物化视图下,所有对于基表的数据变更都会自动同步更新到物化视图中。您无需......
  • Linux系统基础-多线程超详细讲解(3)_线程互斥同步和条件变量
    个人主页:C++忠实粉丝欢迎点赞......