Shorten Diameter


Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB

Score : 600 points

Problem Statement

Given an undirected tree, let the distance between vertices u and v be the number of edges on the simple path from u to v. The diameter of a tree is the maximum among the distances between any two vertices. We will call a tree good if and only if its diameter is at most K.

You are given an undirected tree with N vertices numbered 1 through N. For each i(1≦iN−1), there is an edge connecting vertices Ai and Bi.

You want to remove zero or more vertices from the tree, so that the resulting tree is good. When a vertex is removed, all incident edges will also be removed. The resulting graph must be connected.

Find the minimum number of vertices that you need to remove in order to produce a good tree.

Constraints

  • 2≦N≦2000
  • 1≦KN−1
  • 1≦AiN,1≦BiN
  • The graph defined by Ai and Bi is a tree.

Input

The input is given from Standard Input in the following format:

N K
A1 B1
A2 B2
:
AN−1 BN−1

Output

Print the minimum number of vertices that you need to remove in order to produce a good tree.


Sample Input 1

6 2
1 2
3 2
4 2
1 6
5 6

Sample Output 1

2

The tree is shown below. Removing vertices 5 and 6 will result in a good tree with the diameter of 2.


Sample Input 2

6 5
1 2
3 2
4 2
1 6
5 6

Sample Output 2

0

Since the given tree is already good, you do not need to remove any vertex.

分析:虽然没做出来,不过看了陈高远大牛的代码还是可以yy一下的。

可以先求出任意两点间的距离(dfs),然后考虑最优情况是左右子树平衡的时候(有2种情况),遍历至最优情况即可

aaarticlea/png;base64,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" alt="" />aaarticlea/png;base64,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" alt="" />

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#include <ext/rope>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define vi vector<int>
#define pii pair<int,int>
#define mod 1000000007
#define inf 0x3f3f3f3f
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
const int maxn=2e3+;
const int dis[][]={{,},{-,},{,-},{,}};
using namespace std;
using namespace __gnu_cxx;
ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=;while(q){if(q&)f=f*p;p=p*p;q>>=;}return f;}
int n,m,a[maxn][maxn],mi,cnt;
vi p[maxn];
pii q[maxn];
void dfs(int root,int pre,int now,int s)
{
a[root][now]=s;
for(int x:p[now])
{
if(x!=pre)dfs(root,now,x,s+);
}
}
int main()
{
int i,j,k,t;
mi=inf;
scanf("%d%d",&n,&k);
rep(i,,n-){
scanf("%d%d",&j,&t);
p[j].pb(t),p[t].pb(j);
q[i].fi=j,q[i].se=t;
}
rep(i,,n)dfs(i,-,i,);
rep(i,,n)
{
cnt=;
rep(j,,n)
if(*a[i][j]>k)cnt++;
mi=min(mi,cnt);
}
rep(i,,n-)
{
cnt=;
rep(j,,n)
if(*min(a[j][q[i].fi],a[j][q[i].se])+>k)
cnt++;
mi=min(mi,cnt);
}
printf("%d\n",mi);
//system ("pause");
return ;
}

Shorten Diameter的更多相关文章

  1. AtCoder Grand Contest 001 C Shorten Diameter 树的直径知识

    链接:http://agc001.contest.atcoder.jp/tasks/agc001_c 题解(官方): We use the following well-known fact abou ...

  2. ACC 001 C - Shorten Diameter 图论

    题目: Problem Statement Given an undirected tree, let the distance between vertices \(u\) and \(v\) be ...

  3. AGC001 C - Shorten Diameter【枚举】

    一开始没看到要保证最后是树--所以一定要从叶子开始删 枚举重心,如果k是偶数,那么按当前重心提起来deep大于k/2的全都要切掉,这样枚举重心然后取min即可 奇数的话就是枚举直径中间的边,然后从两边 ...

  4. AtCoderACGC001C Shorten Diameter

    Description: 给定一个\(n\)个点的树,要求删去最少的点使树的致直径不超过k Solution: 如果\(k\)为偶数,对于最终状态一定是以每一个点为根任何点的深度不能超过\(k/2\) ...

  5. RE:从零开始的AGC被虐(到)生活(不能自理)

    RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious L ...

  6. AtCoder Grand Contest

    一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D: ...

  7. A*G#C001

    AGC001 A BBQ Easy 贪心. https://agc001.contest.atcoder.jp/submissions/7856034 B Mysterious Light 很nb这个 ...

  8. 【AtCoder】AGC001

    AGC001 A - BBQ Easy 从第\(2n - 1\)个隔一个加一下加到1即可 #include <bits/stdc++.h> #define fi first #define ...

  9. AGC001[BCDE] 题解

    A没意思 F太难 所以大概近期的AGC题解都是BCDE的 然后特殊情况再说 开始刷AGC的原因就是计数太差 没有脑子 好几个学长都推荐的AGC所以就开始刷了 = = 大概两天三篇的速度?[可能也就最开 ...

随机推荐

  1. Spring 框架理论基础

    一. IOC 控制反转 概念解释:当我需要一个资源时,容器已经帮我准备好,我只需要接受就可以. // 加载 IOC 容器 ApplicationContext ac = new ClassPathXm ...

  2. C++中复制构造函数和赋值操作符

    先看一个例子: 定义了一个类:

  3. Linux下编译C代码,出现tan函数报错的情况

    undefined reference to `tan' 但是已经包含了头文件 <math.h>了,可还是报错,说是找不到tan 这个问题的原因不是很清楚, 但是网上给出的方案,就是编译的 ...

  4. win7系统,apache2.2下添加PHP5的配置详解

    首先要说apache(服务器). php(开发语言). mysql(数据库) 之间的关系. Apache:为系统提供了Web服务支持,网站:http://www.apache.org/ PHP:为系统 ...

  5. Cv图像处理

    http://wiki.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86 看看知识点,虽然是C 版本.

  6. elasticsearch简介

    elasticsearch 摘要: 1 es是一个分布式全文搜索引擎.特定是:无中心化,实时,扩展性强. 2. es有几个好的概念或者特点:(1)cluster 集群无中心化.(2)shards.分片 ...

  7. mvc Area相关技术

    ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的.如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所 ...

  8. beego: 获取request参数

    beego提供了一套web开发的框架.但我们在开发过程中遇到了一些问题,现汇总如下. 测试1:测试只有keys数组的情况 func (this *TestController) Index() { k ...

  9. 使用SQLCMD在SQLServer执行多个脚本 转载

    出处不明 概述: 作为DBA,经常要用开发人员提供的SQL脚本来更新正式数据库,但是一个比较合理的开发流程,当提交脚本给DBA执行的时候,可能已经有几百个sql文件,并且有执行顺序,如我现在工作的公司 ...

  10. login/logout切换

    1. 前端按钮 <img border="0" width="18" height="18" src="<%=base ...