BZOJ2282: [Sdoi2011]消防(洛谷P2491)

该博客探讨了如何解决BZOJ2282和洛谷P2491的问题,该问题涉及到树的直径计算。作者指出,最优路径可能沿树的直径,可以通过找到树的直径,然后以最远点到直径的距离为l,直径长度为r进行二分搜索来求解。具体实现细节见代码。
摘要由CSDN通过智能技术生成

树的直径 二分答案

BZOJ题目传送门
洛谷题目传送门

这道题和树网的核数据加强版很像啊

首先,在不考虑路径长度的情况下,最优的路径就应该在树的直径上,答案就是离树的直径最远的点到直径的距离。
因此,YY一下,这道题的路径也应该造在直径上。(因为我太菜所以严格证明我并不会)
那么我们只要把直径找出来,再以离树的直径最远的点到直径的距离为l,树的直径的长度为r二分答案即可。

具体实现见代码:

#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 300005
#define F inline
using namespace std;
struct edge{ int next,to,dis; }ed[N<<1];
int n,m,k,s,t,l,r,num,sum[N],h[N],que[N],pre[N],dis[N];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值