Shorten Diameter
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≦i≦N−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≦K≦N−1
- 1≦Ai≦N,1≦Bi≦N
- 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的更多相关文章
- AtCoder Grand Contest 001 C Shorten Diameter 树的直径知识
链接:http://agc001.contest.atcoder.jp/tasks/agc001_c 题解(官方): We use the following well-known fact abou ...
- ACC 001 C - Shorten Diameter 图论
题目: Problem Statement Given an undirected tree, let the distance between vertices \(u\) and \(v\) be ...
- AGC001 C - Shorten Diameter【枚举】
一开始没看到要保证最后是树--所以一定要从叶子开始删 枚举重心,如果k是偶数,那么按当前重心提起来deep大于k/2的全都要切掉,这样枚举重心然后取min即可 奇数的话就是枚举直径中间的边,然后从两边 ...
- AtCoderACGC001C Shorten Diameter
Description: 给定一个\(n\)个点的树,要求删去最少的点使树的致直径不超过k Solution: 如果\(k\)为偶数,对于最终状态一定是以每一个点为根任何点的深度不能超过\(k/2\) ...
- RE:从零开始的AGC被虐(到)生活(不能自理)
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious L ...
- AtCoder Grand Contest
一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D: ...
- A*G#C001
AGC001 A BBQ Easy 贪心. https://agc001.contest.atcoder.jp/submissions/7856034 B Mysterious Light 很nb这个 ...
- 【AtCoder】AGC001
AGC001 A - BBQ Easy 从第\(2n - 1\)个隔一个加一下加到1即可 #include <bits/stdc++.h> #define fi first #define ...
- AGC001[BCDE] 题解
A没意思 F太难 所以大概近期的AGC题解都是BCDE的 然后特殊情况再说 开始刷AGC的原因就是计数太差 没有脑子 好几个学长都推荐的AGC所以就开始刷了 = = 大概两天三篇的速度?[可能也就最开 ...
随机推荐
- mysql基本操作 [http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html]
创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...
- forEach用法介绍
array.forEach(callback[, thisArg]) forEach() 方法让数组的每一项都执行一次给定的函数. callback在数组每一项上执行的函数,接收三个参数: curre ...
- SCANF SCANF_S
今天在看C的教程的时候,用VS2013写了一小段代码 scanf("%f",&w); 提示需要在预编译器里添加 _CRT_SECURE_NO_WARNINGS, 百度了下 ...
- Nicholas C. Zakas谈怎样才能成为优秀的前端工程师
黄色阴影为业务,红色字体为哲学 昨天,我负责了Yahoo!公司组织的一次面试活动,感触颇深的是其中的应聘者提问环节.我得说自己对应聘者们提出的大多数问题都相当失望.我希望听到一些对在Yahoo!工作充 ...
- 这一招让 Word 帮你自动生成文件目录,也能自动更新
学生的研究报告或是公司员工的提案企划书,为了务求严明详尽,往往是洋洋洒洒数十页或甚至上百页之多,像这样大篇幅的文件,在结构上通常会划分为好几个部分,比如像论文就会区分为封面.摘要.内文章节.参考文献等 ...
- linux 命令汇总
一 Grep 命令 各种参数: -i:ignore-case忽略大小写 -c :打印匹配的行数 -l :从多个文件中查找包含匹配项 -v :查找不包含匹配项的行 -n :打印包含匹配项的行和行标 -w ...
- 【多重背包模板】poj 1014
#include <iostream> #include <stdio.h> #include <cstring> #define INF 100000000 us ...
- boost库之graph入门
#include <boost/graph/undirected_graph.hpp> #include <boost/graph/adjacency_list.hpp> us ...
- HDU 4027 <线段树,区间√>
题目连接 题意 给出一个区间,每次把[l,r]内的值√,维护区间和. 坑: £:l会比r大,swap. £: 当f[i].sum=f[i].r-f[i].l+1;,不修改.因为保证每个数都大于等于1, ...
- Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据
Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据 2014-06-11 10:45:14 阅读375次 我们在JNI中处理得到的BMP图片Raw数据,我们应该如何 ...