[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)

相关推荐

  • Scala简化代码的方法是什么

    技术Scala简化代码的方法是什么本篇内容介绍了“Scala简化代码的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年12月10日
  • 树莓派如何控制温湿度传感器DHT11

    技术树莓派如何控制温湿度传感器DHT11树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉

    攻略 2021年11月19日
  • web前端怎么用H5-canvas实现粒子时钟

    技术web前端怎么用H5-canvas实现粒子时钟这篇文章主要讲解了“web前端怎么用H5-canvas实现粒子时钟”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前

    攻略 2021年11月5日
  • 如何理解MySQL索引cardinalit

    技术如何理解MySQL索引cardinalit本篇内容主要讲解“如何理解MySQL索引cardinalit”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解MySQL索引

    攻略 2021年10月29日
  • leetode24两两交换链表中的节点

    技术leetode24两两交换链表中的节点 leetode24_两两交换链表中的节点一、题目二、算法分析
    我主要想着通过while循环自己交换,前面两个单独考虑,后面的都是一样的处理。
    因为前面的两个需

    礼包 2021年11月9日
  • 中国征信中心,中国人民银行个人征信中心

    技术中国征信中心,中国人民银行个人征信中心1. 登录 点击首页“核心业务”项下的“互联网个人信用信息 服务平台” ——进入查询页面 ——点击“马上开始”
    ——经过新用户注册 ——用户登录 在线身份验证
    ——填写提交查

    生活 2021年11月1日