502 流
// 502 流.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
http://oj.daimayuan.top/course/5/problem/225
有一棵 n个节点的树,节点编号从 1到 n,树上的每条边都有流量限制。
令某一个节点为根节点,向这个节点灌水,最终从叶子节点流出的水量之和为这个节点的最大流量。
请求出每个节点的最大流量。
输入格式
第一行一个整数 n表示节点数。
接下来 n−1行,每行三个整数 x,y,z
表示 x号节点和 y号节点之间有一条流量限制为 z的边。
数据保证读入的是一棵树。
输出格式
输出共 n行,第 i 行一个整数表示 i 号节点的最大流量。
样例输入
5
1 2 3
1 5 1
2 3 2
2 4 2
样例输出
4
5
2
2
1
数据规模
对于所有数据,保证 2≤n≤105,1≤x,y≤n,1≤z≤109。
5
1 2 1
2 3 1
3 4 1
4 5 1
3
1 2 1
2 3 1
*/
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int h[N], e[2 * N], ne[2*N],w[2*N], idx;
int n;
long long dp[N], v[N];
void add(int a, int b,int c) {
e[idx] = b,w[idx]=c, ne[idx] = h[a], h[a] = idx++;
}
void up(int u, int fa) {
bool isleaf = true;
for (int i = h[u]; i != -1; i = ne[i]) {
int j = e[i]; long long c = w[i];
if (j == fa) continue;
isleaf = false;
up(j, u);
dp[u] += min(c, dp[j]);
}
if (isleaf) {
dp[u] = 0x3f3f3f3f3f3f3f3f;
}
}
void down(int u, int fa) {
for (int i = h[u]; i != -1; i = ne[i]) {
int j = e[i]; long long c = w[i];
if (j == fa) continue;
v[j] = min(v[u] + dp[u]-min(c,dp[j]),c);
if (v[j] == 0) {
v[j] = c;
}
down(j, u);
}
}
int main()
{
memset(h,-1,sizeof h);
cin >> n;
for (int i = 1; i < n; i++) {
int a, b,c; cin >> a >> b>>c;
add(a, b,c); add(b, a,c);
}
up(1, -1);
down(1, -1);
for (int i = 1; i <= n; i++) {
if (dp[i] != 0x3f3f3f3f3f3f3f3f)
cout << v[i] + dp[i] << endl;
else
cout << v[i] << endl;
}
return 0;
}
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-10-10 LeetCode 142. 环形链表 II 链表遍历 哈希
2017-10-10 How-to Install VMware Tools on Debian Stretch 9 32/64bit Linux+GNU