CodeForce[1500-2000]——1946C Tree Cutting

Ccodeforce刷题日记

题目大意:给你一个n个节点的树,将树的k条边移除,剩下的最小的联通块的节点数量为x,现在要求出x的最大值。

思路:求最小值的最大,很容易想到二分法,二分最小联通块的节点数x,利用dfs将树分块,当块数量达到x时就分下一组,如果最后一组没达到x,就组数+1,让最后一组和到前面的组中,再利用组数和k比较,进行二分判断。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int t,n,k,tot=0,mid;
vector<int>e[maxn];
int dfs(int u,int fa){
    int ans=1;
    for(const auto &v:e[u]){
        if(v==fa)  continue;
        ans+=dfs(v,u);
    }
    if(ans>=mid){
        ans=0;tot++;
    }
    return ans;
}

bool check(int mid){
    tot=0;
    int z=dfs(1,-1);
    if(z<mid) tot--;
    if(tot<k) return false;
    else return true;
}

int main(){
    cin>>t;
    while(t--){
        cin>>n>>k;
        for(int i=1;i<=n;i++)e[i].clear();
        for(int i=1;i<n;i++){
            int u,v;cin>>u>>v;
            e[u].push_back(v);e[v].push_back(u);
        }
        int l=0,r=n+1;
        while(l<r){
            mid=l+r+1>>1;
            if(check(mid)) l=mid;
            else r=mid-1;
        }
        cout<<l<<endl;
    }
    return 0;
}

相关推荐

  1. codeforces 1200E

    2024-04-23 01:34:05       36 阅读
  2. codeforces Chip and Ribbon

    2024-04-23 01:34:05       28 阅读
  3. codeforces 1676F

    2024-04-23 01:34:05       42 阅读
  4. codeforces 1904B

    2024-04-23 01:34:05       43 阅读
  5. codeforces A -Cut Ribbon

    2024-04-23 01:34:05       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:34:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:34:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:34:05       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:34:05       20 阅读

热门阅读

  1. 2024-04-22(AJAX)

    2024-04-23 01:34:05       14 阅读
  2. Ubuntu22.04.4 - 安装后使用笔记目录-VMware

    2024-04-23 01:34:05       15 阅读
  3. 基于Python对豆瓣电影数据爬虫的设计与实现

    2024-04-23 01:34:05       13 阅读
  4. Es批量删除DeleteByQueryRequestBuilder

    2024-04-23 01:34:05       14 阅读
  5. Unity3D 分块编辑小AStar地图详解

    2024-04-23 01:34:05       11 阅读
  6. 卸载并升级pytorch安装torcheval

    2024-04-23 01:34:05       13 阅读
  7. CV 面试指南—深度学习知识点总结(1)

    2024-04-23 01:34:05       15 阅读
  8. 前端CSS基础2(CSS基本选择器和复合选择器)

    2024-04-23 01:34:05       10 阅读
  9. 面试题

    面试题

    2024-04-23 01:34:05      16 阅读
  10. /bin/sh: 1: arm-linux-g++: not found

    2024-04-23 01:34:05       16 阅读
  11. 【Vue3源码学习】— CH3.2 VNode解析(上)

    2024-04-23 01:34:05       18 阅读