[UVALive 3902] Network
图片加载可能有点慢,请跳过题面先看题解,谢谢





一道简单的贪心题,而且根节点已经给你了(\(S\)),这就很好做了。
显然,深度小于等于 \(k\) 的都不用管了(\(S\) 深度为0),那么我们只需要处理深度大于 \(k\) 的叶子节点。
这里有一个显而易见的贪心策略:
每次找一个深度最深的没有被覆盖的叶子节点,然后在它的 \(k\) 级祖先上放置服务器,覆盖服务器的周围 \(k\) 层节点。
反复这个操作直到所有节点都被覆盖。
//made by Hero_of_Someone
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define il inline
#define RG register
using namespace std;
il int gi(){ RG int x=0,q=1; RG char ch=getchar(); while( ( ch<'0' || ch>'9' ) && ch!='-' ) ch=getchar();
if( ch=='-' ) q=-1,ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x; }
bool vis[1010];
int T,n,k,s,ans;
int size[1010],fa[1010],que[1010][1010];
int num,head[1010],nxt[2010],to[2010];
il void add(int u,int v){
nxt[++num]=head[u];to[num]=v;head[u]=num;
nxt[++num]=head[v];to[num]=u;head[v]=num;
}
il void dfs(int x,int f,int d){
size[x]=1;fa[x]=f;
for(RG int i=head[x];i;i=nxt[i]){
RG int v=to[i]; if(v==f) continue;
dfs(v,x,d+1); size[x]+=size[v];
}
if(size[x]==1 && d>k) que[d][++que[d][0]]=x;
}
il void init(){
n=gi(),s=gi(),k=gi(),num=0;
memset(que,0,sizeof(que));
memset(vis,0,sizeof(vis));
memset(head,0,sizeof(head));
memset(size,0,sizeof(size));
for(RG int i=1;i<n;i++){
RG int u=gi(),v=gi();
add(u,v);
} dfs(s,0,0);
}
il void Dfs(int x,int f,int d){
vis[x]=1; if(d>=k) return ;
for(RG int i=head[x];i;i=nxt[i]){
RG int v=to[i];
if(v==f) continue;
Dfs(v,x,d+1);
}
}
il void work(){ ans=0;
for(RG int d=n-1;d>k;d--){
for(RG int i=1;i<=que[d][0];i++){
RG int x=que[d][i];
if(vis[x]) continue;
RG int cur=x;
for(RG int j=1;j<=k;j++) cur=fa[cur];
Dfs(cur,0,0);
ans++;
}
}
printf("%d\n",ans);
}
int main(){ T=gi(); while(T--){ init(); work(); } return 0; }
[UVALive 3902] Network的更多相关文章
- UVALive 3902 Network (树+dfs)
Consider a tree network with n nodes where the internal nodes correspond to servers and the terminal ...
- UVaLive 3902 Network (无根树转有根树,贪心)
题意:一个树形网络,叶子是客户端,其他的是服务器.现在只有一台服务器提供服务,使得不超k的客户端流畅,但是其他的就不行了, 现在要在其他结点上安装服务器,使得所有的客户端都能流畅,问最少要几台. 析: ...
- LA 3902 Network(树上最优化 贪心)
Network Consider a tree network with n <tex2html_verbatim_mark>nodes where the internal nodes ...
- UVALive 3902 网络
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- LA 3902 Network
人生第一道图论题啊,有木有 题意: 有一个树状网络,有一个原始服务器s,它的服务范围是k 问至少再放多少台服务范围是k的服务器才能使网络中的每个节点都被覆盖掉 解法: 我们以原始服务器为根将其转化成一 ...
- Uva LA 3902 - Network 树形DP 难度: 0
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...
- Uva 3902 Network
题目大意: 在非叶子节点上安装最少的服务器使得,每个叶子节点到服务器的距离不超过k. 贪心+图上的dfs. 先从深度最大的叶子节点开始找.找到父节点后再用这个父节点进行扩充. /* ********* ...
- UVALive3902 Network[贪心 DFS&&BFS]
UVALive - 3902 Network Consider a tree network with n nodes where the internal nodes correspond to s ...
- 辣些数据结构的思维题(思维题好难一个都不会TAT)
洛谷P1268 树的重量 我觉得难点在于把每个叶子节点想象成分出来的叉 然后如果c是a--b这条边上分出来的,可以通过Dab,Dca,Dcb算出分叉边的长度, 长度=(Dac+Dbc-Dab)/2 怎 ...
随机推荐
- Redis源码阅读(一)事件机制
Redis源码阅读(一)事件机制 Redis作为一款NoSQL非关系内存数据库,具有很高的读写性能,且原生支持的数据类型丰富,被广泛的作为缓存.分布式数据库.消息队列等应用.此外Redis还有许多高可 ...
- ABP.ModuleZero.Feature——特性管理
原文地址:http://aspnetboilerplate.com/Pages/Documents/Feature-Management (在翻译原文的基础上增补更多细节说明) 简介 在大多数SAA ...
- Scrum立会报告+燃尽图(Final阶段第一次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2480 项目地址:https://coding.net/u/wuyy694 ...
- 利用JAVA制作简单登录窗口
import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ...
- 初学Cocos2dx
初学cocos2dx Cocos2dx 中的主要概念包括:应用.导演.场景.层.精灵.动画.动作. Cocos2dx里面的主要类 1.CCObject Object Object Object 是co ...
- ListViewAnimations使用时报错NoClassDefFoundError: com.nineoldandroids.animation.Animator
见 https://github.com/nhaarman/ListViewAnimations/issues/294 解决: Add this to your dependencies in you ...
- 【动态规划】POJ-2229
一.题目 Description Farmer John commanded his cows to search for different sets of numbers that sum to ...
- Alpha版本冲刺(九)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...
- 个人作业-week2(代码复审)
一.代码复审check list 概要部分 代码符合需求和规格说明吗? 符合要求和规格说明,-s指令和-c指令都能实现需求.并且能够处理非法输入. 代码设计是否有周全的考虑? 程序的main函数中对各 ...
- PAT 甲级 1151 LCA in a Binary Tree
https://pintia.cn/problem-sets/994805342720868352/problems/1038430130011897856 The lowest common anc ...