Problem K. Road Network - ACPC2015(求树的直径 dp)
Problem K. Road Network
题目链接
Arab Collegiate Programming Contest 2015
题意:
树形的公路,如果阻塞道路可以断开两个区域彼此的连接,则道路是脆弱的。现在只能修建一条公路尽可能来避免这种情况。
分析:
用这一条公路连成一个环,那么这个环上的所有路都不是脆弱的。那么我们要选一条最长的链把它连起来,这是最优的情况。这就是求树的直径。与我的这篇题解相似。
Code:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
int n, dp[N];
vector<int> e[N];
int ans;
void dfs(int c, int f)
{dp[c] = 1;for (auto v : e[c]){if (v == f)continue;dfs(v, c);ans = max(ans, dp[c] + dp[v]);dp[c] = max(dp[c], dp[v] + 1);}ans = max(ans, dp[c]);
}
int main()
{ios::sync_with_stdio(false), cin.tie(nullptr);int T;cin >> T;while (T--){cin >> n;ans = -1e8; //注意初始化for (int i = 0; i <= n; i++)dp[i] = 0, e[i].clear();for (int i = 1; i < n; i++){int u, v;cin >> u >> v;e[u].push_back(v);e[v].push_back(u);}dfs(1, 0);cout << n - ans << endl;}return 0;
}
Problem K. Road Network - ACPC2015(求树的直径 dp)相关推荐
- hdu 4607 Park Visit 求树的直径
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 Claire and her little friend, ykwd, are travelli ...
- 求树的直径+并查集(bfs,dfs都可以)hdu4514
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 这题主要是叫我们求出树的直径,在求树的直径之前要先判断一下有没有环 树的直径指的就是一棵树上面距 ...
- 树上子链(树形dp求树的直径)
树上子链 题意: 给定一棵树 T ,树 T 上每个点都有一个权值. 定义一颗树的子链的大小为:这个子链上所有结点的权值和 . 请在树 T 中找出一条最大的子链并输出. 题解: 求树的直径,题目中存在负 ...
- HDU4612+Tarjan缩点+BFS求树的直径
tarjan+缩点+树的直径 题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少. 先tarjan缩点,再在这棵树上求直径.加的边即是连接这条直径的两端. 1 /* 2 ...
- 求树的直径的两种方法
树的直径 树型dp求树的直径 优缺点: 优点为可以处理边权为负的情况,但不易得到直径的路径(指树的直径经过什么点). 代码模板: #include<bits/stdc++.h> using ...
- 《鲁滨逊漂流记》题解(LCA算法求树的直径)
Description <鲁滨逊漂流记>只讲到了鲁滨逊在岛上建立起一个自给自足的生态环境.而大家不知道的是,在此之后,鲁滨逊因为太无聊,开始探索周边的岛屿,一共 NNN 天.鲁滨逊第 11 ...
- F - Warm up - hdu 4612(缩点+求树的直径)
题意:有一个无向连通图,现在问添加一条边后最少还有几个桥 分析:先把图缩点,然后重构图为一棵树,求出来树的直径即可,不过注意会有重边,构树的时候注意一下 *********************** ...
- 求树的直径(两种方法)
① 两次dfs 方法:先从任意一点P出发,找离它最远的点Q,再从点Q出发,找离它最远的点W,W到Q的距离就是是的直径 证明如下: ①若P已经在直径上,根据树的直径的定义可知Q也在直径上且为直径的一个端 ...
- 求树的直径算法以及证明
以下为两次dfs(bfs)的做法以及正确性证明. 算法步骤 (1)任取树上一点S,以S为源点BFS得S到各个顶点的d值: (2)取d值最大者之一为P,再以P为源点BFS得P到各个顶点的d值: (3)再 ...
最新文章
- 【软件质量】软件质量特性因子
- 10个好用的Web日志安全分析工具
- Python Matplotlib
- 【转载】文件上传命令rz和下载命令sz的安装
- 扇贝有道180915每日一句
- JavaScript学习笔记
- 计算机应用基础多媒体应用试题,2020年9月统考《计算机应用基础》多媒体技术试题及答案2...
- 仙剑奇侠传脚本制作教程
- DirectX11学习笔记五 摄像机类
- 计算机如何安装程序,如何手动安装计算机驱动程序
- android 超链接事件,Android之捕获TextView超链接
- Gris 游戏开发-day04
- 7.5 SNN《脉冲神经网络研究进展综述》笔记
- Android分屏模式代码实现
- 聚观早报 | 明年起手机预装APP均可卸载;爱奇艺VIP会员再次涨价
- 【极致通话降噪】高通QCC3071 三麦克风通话降噪方案
- 东北大学计算机硬件题库,东北大学20春学期《计算机硬件技术基础》在线平时作业123答案100...
- 微信小程序使用真机或开发工具进行http请求开发测试亲测有效
- 10个最好的照片分享网站
- 联想小新air13装双系统_联想小新air13pro安装ubuntu双系统要点笔记