AC日记——Two poj 1849
Two
思路:
树形DP求直径;
答案是边权总和*2-直径;
dp[i][1]::以i为根的子树中最长的路径;
dp[i][0]::以i为根的子树中次长的路径;
来,上代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm>using namespace std;#define maxn 100005int n,s,E[maxn<<1],V[maxn<<1],W[maxn<<1],cnt; int head[maxn],dp[maxn][2],sum,ans=0;inline void in(int &now) {char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();} }void dfs(int now,int fa) {bool res=true;int pos=0,gs=0;for(int i=head[now];i;i=E[i]){if(V[i]==fa) continue;res=false,dfs(V[i],now);if(W[i]+dp[V[i]][0]>gs) gs=W[i]+dp[V[i]][0],pos=V[i];}if(res) return ;dp[now][0]=gs,gs=0;for(int i=head[now];i;i=E[i]){if(V[i]==fa||V[i]==pos) continue;if(W[i]+dp[V[i]][0]>gs) gs=W[i]+dp[V[i]][0];}dp[now][1]=gs,ans=max(ans,dp[now][1]+dp[now][0]); }int main() {in(n),in(s);int u,v,w;for(int i=1;i<n;i++){in(u),in(v),in(w),sum+=w*2;E[++cnt]=head[u],V[cnt]=v,W[cnt]=w,head[u]=cnt;E[++cnt]=head[v],V[cnt]=u,W[cnt]=w,head[v]=cnt;}dfs(s,0);cout<<sum-ans;return 0; }
转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6783168.html
AC日记——Two poj 1849相关推荐
- POJ 1849 Two(树的直径+思维)
题目链接:http://poj.org/problem?id=1849 题意是有n个点,n-1条边(树形图),在s点放两个机器人,问这两个机器人遍历完所有的点的最少花费(不用回到原点). ...
- AC日记——传染病控制 洛谷 P1041
传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...
- AC日记——中位数 洛谷 P1168
题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[2], -, A[2k - 1]的中位数.[color=red]即[/color] ...
- AC日记——约瑟夫问题 codevs 1282
1282 约瑟夫问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 有编号从1到N的N个小朋友在玩 ...
- POJ - 1849 Two(树的直径)
题意: 给你N个结点的树,每条边的权值,以及一个起点位置S. 你有两个robot ,可以同时在树上跑.每跑过一条边就要花费一条边权值的油费(要重复i计算).现在你要把整棵树跑完,问至少要花费多少. 思 ...
- AC日记——逃出克隆岛 (bfs)
2059 逃出克隆岛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description oi小组的yh酷爱玩魔兽rpg,每天都会在u9搜 ...
- AC日记——[Hnoi2017]影魔 bzoj 4826
4826 思路: 主席树矩阵加减+单调栈预处理: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 200005 ...
- AC日记——小书童——刷题大军 洛谷 P1926
题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人. 文言是火,点亮历史宫灯:历史是灯,照亮社会之路:社会是路,通向哲学大坑:哲学是坑,埋葬文科生 ...
- AC日记——[HNOI2010]BOUNCE 弹飞绵羊 洛谷 P3203
[HNOI2010]BOUNCE 弹飞绵羊 思路: SBlct: 代码: #include <bits/stdc++.h> using namespace std; #define max ...
最新文章
- 自定义mac的ll命令
- CGI方式获取RTX中用户的电话和邮箱
- JZOJ 5393. 【NOIP2017提高A组模拟10.5】Snake vs Block
- TCP queue 的一些问题
- 20220211-CTF-MISC-006-pure_color(stegsolve工具的使用)-007-Aesop_secret(AES解密)
- Microsoft宣布将停止支持多个 .NET Framework版本
- git常用命令,项目删除原有github连接并重新连接,回滚,下拉分支代码,切换分支
- SQL Server全局禁用及打开指定的跟踪标记
- SAP License:SAP评论
- (转) Dockerfile 中的 COPY 与 ADD 命令 1
- Android上的抓包工具 Packet Capture
- 模拟电子技术知识点总结
- c语言实数的输出和占位_C语言输出格式总结
- 发一套最完整的直升机原理(绝对完整,绝对精华)
- 计算机毕设(附源码)JAVA-SSM基于远程协作的汽车故障诊断系统
- pythonarray去除inf_Python中的inf与nan
- C++ 复数计算器 简单代码
- Excel教程:必会的大数据录入技巧|Excel入门
- 王者荣耀模型制作曝光
- Microsoft 解决方案框架版本 3.0 概述