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,iVBORw0KGgoAAAANSUhEUgAAAbsAAAEhCAIAAABp9plsAAAMwElEQVR4nO3d21pjNwwG0Lz/S6cX0zIpJMHx9kGW1rrsB2xZkv8EOjPc7gC0ue0uAOAYEhOglcQEaCUxAVpJTIBWEhOglcQEaCUxAVpJTIBWEhOglcQEaCUxAVpJTIBWEhOglcQEaCUxAVpJTIBWEhOglcQEaCUxAVpJTIBWEpN1bm/trg5+Z02Zqz0TpSfxWU1muZJ9cpOYLCXjjco7uUk01pHBhmec0CQOu8hIk9JNaBKERWSYqbkmNInAFjLGgkQTmmxnBRlgWZYJTfayf1y1OMWEJhtZPi7Zkl9Ck11sHpdITEqxefTbmFxCky2sHf0kJtVYO/pJTKqxdnTanlnbC6AgO0en7YG1vQAKsnN02h5Y2wugIDtHp+2Btb0ACrJzdNoeWNsLoCA7R6ftgbW9AAqyc3TaHljbC6AgO0c/fx6Taqwd/SQm1Vg7+klMqrF2XOLfLqIUm8clEpNSbB5X+TfYqcPyMYDf80MR9o8x/C5JKrCCDOP3lZOeLWSMP4k2KdfEJUFYRAZ4TLTh6SYuicMuctXPRLvdbkNi7tvXEZ1sZwW55E2KXcnNV58rNNnL/tGvJb9uD4Z8pNBkI8tHp47kur019dEwhM2jx/bM2l4ANVk7PhYkrYKUQSl2js+EyqlQxVCBheMDARMqYEkkZttoFTabwhZGPlaNJsFTKXh5pGHP+N0ReXREkZzOkvGLg5LooFI5lA3jneMy6LiCOYv14qVD0+fQsjmC3eK5o3Pn6OKJzGLxRILESXAEArJVfJcma9IchDisFP+TLGWSHYft7BN/pcyXlIdiF8vEvxInS+KjsZhN4n4vkCnpD8ga1ogqaVLkmExlh6orlSOlDssMFqi0gglS8MgMZHvqKpsdZQ/OdVanqOKpUfz4dLM3FcmLuybQxdKUIym+aAWfsjG1yIhvNISPWJdCpMNT2kI7u1KFXHhDc2hkUUqQCL/SIlrYkvxkQSON4ldWJDkp8BHt4j37kZn730HTeMNypOXmd9M6XrEZObnzF2kgT1mLhNz2IbSRn+xENu75QJrJNxYiFTd8OC3lkW3Iw92eRGP5YhWScKun0l7+sAcZuM8LaDJ3iZmAm7yMVmMDzuYOL6bhxRn/wdzeLbS9MrM/lXu7keaXZfBHcmO3M4KaTP087moQBlGQkR/GLQ3FOKox75O4nwEZSimGfQw3MyyjqcOkz+BOBtc+oNtrUytkCEM6gLt0hDdjaoxF6RmfwQTlnciJfk6ne2RmHZORBOKdSAJfQxkyIFOOxjBC8E4kk+FDMeI4TGIz70TymTEO8w3CGHbyTiSfeVMw3wjMYI9J7wq92dxrdvMNdzsD2MC9SmlN2w13L91fzb1KaWXDDXcjrV9q2a67VCut77b57qLvS3knkpLErEPf13GvUtrVZMPdQtMX2bLfLtUCErMUTV/EvUppb3sNdz0dX2HjZrtUU0nManR8BfcqK5OtRsdXcK9SitDYCDWUot3TRdjpCDXkE6GrEWooRbuni7DTEWrIJ0JXI9RQinZPF2GnI9SQT4SuRqihFO2eLsJOR6ghnwhdjVBDKdo9XYSdjlBDPhG6GqGGUrR7ugg7HaGGfCJ0NUINpWj3dBF2OkIN+UToaoQaStHu6SLsdIQa8onQ1Qg1lKLd00XY6Qg1pOTvJlSj4yu4V1mZbDU6voJ7lZXJVqPjK/i3ixLz7/iVoumLuFdZmWwpmr6Ie5WY30dSh76v415lZbJ16PtSfpdkViZbhNYv5feVJ7am5ya7l+6v5l4lNrvtxrqdAWxwu92mrr57tdG85htrBGaw2tfez7gAs7OYFpMmO/xr0sEYlvq292OvwZ+v5mpFMGOyRGAS6zzd+yHvCr99ERcsghmTZTvDWOfN6ndfjKef6I7FcftP3yf+/I+D6qKTASzSsuu3Bxc/zNWKxmRz0P0Vut9iPDXvoSxgskfT+umu7PeuzyU4w91F3+e6uNl7P52wTHYXfZ9re+S5WlmZ7BaaPlGEvHOvEjPc9XR8liHbHOeLEJPhLqbdU4za42hfh4AMdyW9niJa0rlUuZnvMho93sD1jfmliMZwl9HowcbubuSvRiiGu4YujzR8ayUm7cx3AS0eZsa+Bo9gojHf2fR3mCMSc9LXJA7znUpzx5i0phKTDkY8j84OMG9BDwpi4jDfeXT2qqnbeVwWE4T5TqKtl8zey0PjmAjMdwY9vURiEpkRD6eh/Ras49GJTARGPJZudlqziAlCme2MeCCt7LFsBSUm1xnxQFrZI1NiLnsKGxnxKPr4sZXLlyya2ciIh9DEzyxeO4nJQKZ8nQ5+YP3CpXw/y0amfJH2tdqyalnf0rKRKV+hd60kJjmY8hV612TXkuX+OQC7mHI3jfvdxvWq8MaWLUy5j679Yu9iSUzmMegOWvbO9pWq89MAtjDoT+nXO9v3qdoPBFjPoD+iWS9F2CSJyWwG/RHNei7IGhX8KSrrGXQ7nXoizgJtr2R7Aaxh0I206Yk427O9ku0FsIxZt9Cj70LtTYRiItTAGmb9Kw36n2gbE6SeIGWwgFm/pzt/BdyVICUFKYMFzPo93flXzEWJU1WcSpjNrN/Qmn/F3JJQVYUqhqnM+hV9ud8D70eowkIVw2zG/ZSmhN6MaLVFq4epjPun6h0JvhMBywtYEvMY9zel2xF/GwJWGLAk5jHub0q3I/42xKwwZlVMYtyP6vbiiD0IW2TYwpjBuL8UbcQpGxC2zrCFMYmJ/1GxCwfNPnKpkWtjBhO/S8zggpcavDyGM/Fy5z9r5MGrDV4ew5l4rfMfN+/4BcevkLGKT7zQ4U+c9BE1H1EkA1WeeJWTHzrjI8o+okjGKjv0Ksc+dMCnlH1KnQxUc+glznzuaA+q/KBSGaXg0PMf+OihnlX8WdVyXcGJJz/w6RM9q/6zqmWIakPPfNoEszzuCMcVzHWlhp75qAkGeeIRTqyZi+oMPe05c4zwxFOcWDPXFZl7zkOmGd6hBzm0bC6qMPeEJ8w0tnPPcm7ldKsw9IQnzDS2c89ybuVckX7u2Y6XbGBHH+fo4umWe+6pzpZvVKef6PT66ZN47nkOlnJIpx/q9PrplnX0SU6VdjznnyvBEeiTcvRJjpRyNvcs58pxCj6Vcu6hj3R74eeHbSlvgRxHy3EKOuQbfcTzvErGpx+QbCSNLxLHSXAE+iQbfbjDfNTfNMP49e1zguh8erqULw98k2mmgU7Sd1tOv2Of1n/uedvTX3Sm9+rFMv7coxR3sU3Bu/zUleWIv1hP1Xl54KnGTIwcnSFqGtKamP19pdqRC7488CjNd5D7qxnYkWjNfaXakau9PPDoeuqFys3NdQxvRJzOvlLtyNVeHng0dvoRFmBnBZPOH6Gtr5Q68owVD3Jt+NWkSW2fvsRcqtSRSx2WR1NntHcBtj07cU9fKXXkUofl0YLpbFwAiblI7jX6ptRhebRsLrsWYNNT692oOkdOf2d4ZfFEtiyAxFyhVIiUOiyPJOacR9a7UXWOXOHO8NSe/Fr+0MyHDHKdSoVIqcPySGJOe6TETPS4vY8OMmLqbJ3EnE5i5nso39TZuuRvCiJcpzpHlpg1bR/BygIkZsICtv1RtUqH5cv2EUjMUx8XpIA6D93+aO4B+i8xT31ckALqPHT7ownS/HX/d2TNY/4+T2J6aKJHE6T5EvPIxwUpoM5Dtz+aIM2XmEc+LkgBdR66/dEEab7EPPJxQQqo89DtjyZI8yXmkY8LUkCdh25/NEGaLzGPfFyQAuo8dPujCdL8tIl5L/a3JOv8VWuJWVOQ5kvMkx70Xp231dXe23IP03+JedKD3pOY+R7Ko+0jyPx3fu4SM9fjtj86yJQr2z6C5Il5X3LC7VN8VORFQmLWtH0EEvOMR7QrkpjrC9h+Xv6o851NznMGvEhFXiQkZk0Sc/6DJeaBj2hR5w01X+r8mbaEP/YKe5GKvEhIzJqK/BRbYi5V5Mh13lDzqMLPZLL9j4LgF6lIYt7LvKHmkcRcUsG4Yx9xkeq8SNR5eeBL+p/JhFi+IYc/6CIVeZG43W4zXh4iH5l79p/JRFm+iy047hYNuflHnLrIywOPEv9MJtAK9oXI0W86uis/69TVvofgnvc7jHBb2N6UCO277tNTHHrqK2UfemTuGb/DCFHET+8vSb4rdPtP9wccocjLA4+uDzHUGkSp46nbC7vrmqjCkYu8PPCob6AB1yBWNZRS4eWBR40jjrwJEWsCcnv1Yhk2KL+ELg4gFIkJ0EpiArSSmACtJCZAK4kJ0EpiArSSmACtJCZAK4kJ0EpiArSSmACtJCZAK4kJ0EpiArSSmACtJCZAK4kJ0EpiArSSmACtJCZAK4kJ0EpiArT6B7dFSPm9NeI6AAAAAElFTkSuQmCC" 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. Win7 Cygwin环境试验Nutch tutorial遇到的异常解决方法

    安装tutorial的步骤安装Nutch,当执行下面这条命令时出现异常 bin/nutch crawl urls - -topN Injector: starting at -- :: Injecto ...

  2. Storm官方文档翻译之设置开发环境

    本文将介绍如何设置Storm的开发环境.下面是大纲: 1.下载Storm发布包,解压,将解压的 bin目录放到你电脑的PATH中. 2.为了能够在远程集群中启动或者停止Topology,请将集群信息放 ...

  3. set集合容器

      set集合容器几条特点 1.它不会重复插入相同键值的元素,而采取忽略处理 2.使用中序遍历算法,检索效率高于vector.deque.list容器,在插入元素时,会自动将元素按键值从小到大排列 3 ...

  4. 常见B2C网站购物车的设计

    对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失.优秀的购物车设计至少需要完成两项使命:一是方便用户多买货多掏银子:二是帮用户保管好待购的 ...

  5. Away 3d 入门demo

    Away3d是不错的开源Flash 3D引擎,现在最新的版本是4.0,在这个例子中我们使用现在比较稳定的3.6版本,4.0API相较之前变化较大,支持最新的flash player11硬件加速 现在写 ...

  6. NSNotificationCenter消息通信机制

    作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的. 注册通知:即要在什么地方接受消息 [[NSNotificationCenter defaultCenter] ...

  7. cscope

    http://sourceforge.net/p/cscope/bugs/247/ buffer read only? cx cq Here is a simple patch which re-en ...

  8. 根据XML文件生成XSD文件

    在.net开发环境中查找XSD.exe文件,比如我的在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下,将该路径添加到Path中,打开控制台,到 ...

  9. wchar_t * 与 char * 互相转换小记

    wchar_t * 与char *之间的转化只需要借助标准库里面的std::wcstombs和std::mbstowcs就能实现了

  10. GCC: compilation process..

    gcc -Iproj/src myfile.c -o myfile gcc -c myfile.c "compile without linking gcc -D DEBUG myfile. ...