[bzoj1912][Apio2010]patrol 巡逻

技术[bzoj1912][Apio2010]patrol 巡逻 [bzoj1912][Apio2010]patrol 巡逻无DescriptionInput
第一行包含两个整数 n, K(1 ≤ K ≤

[bzoj 1912][Apio 2010]巡逻巡逻

Description

Input

第一行包含两个整数n,K(1 K 2)。

接下来n1行,每行两个整数a,b,表示村庄a与b之间有一条道路(1 a,b n)。

Output

输出一个整数,表示新建了K条道路后能达到的最小巡逻距离。

Sample Input

8 1

1 2

3 1

3 4

5 3

7 5

8 5

5 6

Sample Output

11

HINT

3 n 100,000,1 K 2。

Solution

不建道路时方案数为2(n-1)。

建一条道路时,把树直径两段连上,答案为2(n-1)-r 1。

此基础上再建一条道路:把树直径删去,在现在的图上再求一条直径。

那么,\(k\leq10^5\)要怎么做呢

#定义N 100005

结构图{

int nxt,to,w;

[N1];

int g[N],f1[N],f2[N],N,m,mx,id,ans,CNT=1;

布尔维斯[N];

内联void addedge(int x,int y){ 0

碳纳米管.NXT=g[x];g[x]=CNT;碳纳米管.to=y;碳纳米管.w=1;

}

内联void add(int x,int y){ 0

addedge(x,y);addedge(y,x);

}

内联int dfs(int u,int fa){ 0

int s1=0,S2=0;

对于(int i=g[u],tmp我;i=e[i]。nxt)

如果(e[i].敬!=fa){ 0

tmp=e[i].w dfs(e[i]).to,u);

if(tmp S1){ 0

S2=S1 S1 S1=TMpf2[u]=f1[u];f1[u]=I;

}

否则if(tmp S2){ 0

S2=tmp F2[u]=I;

}

}

if(s1 s2mx) mx=s1 s2,id=u;

返回S1;

}

内嵌void Aireen(){ 0

n=read();m=read();

for(int I=1;在;(一)

添加(read())(read());

ans=(n-1)1;

while(m-){ 0

memset(f1,0,sizeof(f1));

memset(f2,0,sizeof(F2));

MX=id=0;dfs(1,0);ans=1-MX;

for(int I=f1[id];我;i=f1 .至e[i].w=e[i^1].w=-1;

for(int I=F2[id];我;i=f1 .至e[i].w=e[i^1].w=-1;

}

printf('%d\n ',ans);

}

2017-05-03 22:23:28

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116860.html

(0)

相关推荐

  • 水浒传每回概括200字,水浒传25一32回概括200字

    技术水浒传每回概括200字,水浒传25一32回概括200字●第二十五回王婆计啜西门庆
    淫妇药鸩武大郎
    郓哥被王婆打了之后水浒传每回概括200字,去找武大郎,劈头盖脸骂了他一顿。武大郎见他话里有话,请他到酒店里喝酒吃肉,郓

    生活 2021年10月19日
  • 美版鞋码对应中国鞋码,美国鞋号uk4是中国鞋号多少

    技术美版鞋码对应中国鞋码,美国鞋号uk4是中国鞋号多少首先说明UK是英国鞋码的代号美版鞋码对应中国鞋码,为英国的英文united kingdom的缩写,美国鞋码的代号是US码,为USA的缩写,UK4码相当于220码,欧码

    生活 2021年10月23日
  • java的定义类如何使用(java怎么定义实现类)

    技术Java的组合类怎么定义这篇文章主要讲解了“Java的组合类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的组合类怎么定义”吧!我们可以在一个新类的定

    攻略 2021年12月21日
  • Oracle与PostgreSQL内置的编程语言有什么不同

    技术Oracle与PostgreSQL内置的编程语言有什么不同本篇内容主要讲解“Oracle与PostgreSQL内置的编程语言有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带

    攻略 2021年11月8日
  • javascrip高级前端开发常用的API有哪些

    技术javascrip高级前端开发常用的API有哪些这篇文章主要介绍“javascrip高级前端开发常用的API有哪些”,在日常操作中,相信很多人在javascrip高级前端开发常用的API有哪些问题上存在疑惑,小编查阅

    攻略 2021年11月26日
  • Hive源码编译的示例分析

    技术Hive源码编译的示例分析小编给大家分享一下Hive源码编译的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hive简介:Hive

    攻略 2021年12月10日