牛客NOIP暑期七天营-普及组6-C-Bunny的修路工程

Bunny的修路工程

https://ac.nowcoder.com/acm/contest/930/C

题目大意:n个点n-1条边的一棵树,有m个点是超市;现在每个点到超市的最短距离都不超过D,至多删除多少条边,还能够保证每个点到超市的最短距离都不超过D?

预处理:超市点的数量是x,非超市点是y,x+y = n。

1、对于不是超市的点,都需要1条边来连向超市,所以至少需要y条边,至多删除n-1 - y条边。

2、要想删边后每个点到超市的距离不超过D,可以用y条边就够了。
超市不需要用边;非超市点,必有一条路连向超市,选距离最短的。不需要管怎么找到这条路,因为我们只需要知道是否可行就够。

#include <bits/stdc++.h>
#define N 1000005
using namespace std;
int n, m, i, j, k, ans, f[N];
int main(){
    scanf("%d%d%*d", &n, &m);
    for(i=1; i<=m; i++){
        scanf("%d", &k);
        if(++f[k] == 1) ans++;
    }
    printf("%d\n", (n-1)-(n-ans));
    return 0;
}
全部评论
比赛没结束,就发题解了?不怕别人看见?
点赞 回复 分享
发布于 2019-08-25 14:37
比赛结束才公开的。
点赞 回复 分享
发布于 2019-08-25 17:11

相关推荐

03-05 19:06
Java
如题ACM/ICPC奖牌有用吗,如果是区域赛银牌作用是多大呢?
KalznAsawind:没用,按照我秋招的感觉,没任何作用,不如实习一根。最大的用处是华为给我免了笔试和一轮面,其他没吊用,最多加个印象分。
点赞 评论 收藏
分享
沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务