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

这篇具有很好参考价值的文章主要介绍了CodeForce[1500-2000]——1946C Tree Cutting。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ccodeforce刷题日记

CodeForce[1500-2000]——1946C Tree Cutting,算法,c++,c语言,codeforce,数据结构,树,深度优先

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

思路:求最小值的最大,很容易想到二分法,二分最小联通块的节点数x,利用dfs将树分块,当块数量达到x时就分下一组,如果最后一组没达到x,就组数+1,让最后一组和到前面的组中,再利用组数和k比较,进行二分判断。文章来源地址https://www.toymoban.com/news/detail-855712.html

#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;
}

到了这里,关于CodeForce[1500-2000]——1946C Tree Cutting的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 西门子PLC1500大型程序fanuc机器人焊装 包括1台 西门子1500PLC程序

    西门子PLC1500大型程序fanuc机器人焊装 包括1台 西门子1500PLC程序,2台触摸屏TP1500程序  9个智能远程终端ET200SP Profinet连接  15个Festo智能模块Profinet通讯  10台Fanuc发那科机器人Profinet通讯  3台G120变频器Profinet通讯  2台智能电能管理仪表PAC3200  4个GRAPH顺控程序  图尔克RFID总线模

    2024年01月18日
    浏览(49)
  • S7-1500系列ModBusTCP通讯

    ModBus是串行通信,设备之间通过少量数据信号线(一般是8根以下)、地线及控制信号线,按数据位形式一位一位地传输数据的通信方式。需要约定号编码和解码的方式。 一秒钟传送的位数,也就是通讯速率;比如波特率为9600,即,一秒种可以传送9600个位数 奇校验或偶校验

    2024年02月03日
    浏览(36)
  • 西门子大型程序fanuc机器人焊装 包括1台 西门子1500PLC程序,2台触摸屏TP1500程序

    西门子大型程序fanuc机器人焊装  包括1台 西门子1500PLC程序,2台触摸屏TP1500程序,9个智能远程终端ET200SP Profinet连接 15个Festo智能模块Profinet通讯 10台Fanuc发那科机器人Profinet通讯 3台G120变频器Profinet通讯 2台智能电能管理仪表PAC3200 4个GRAPH顺控程序 图尔克RFID总线模组通讯 和ME

    2024年02月02日
    浏览(45)
  • 一次生产docker MTU=1500问题排查解决

    和业务方进行联调,业务方调用我方服务, 我方服务部署在虚拟机的docker容器中 提供grpc服务, 通过公网vip lvs到宿主机端口 联调发现 ping 和 telnet我方端口都正常, 但是通过grpc协议调用不通,一直超时 在容器上和lvs上tcpdump抓包发现了问题 容器内抓包: lvs上抓包到宿主机:

    2024年04月16日
    浏览(30)
  • 西门子S7-1500作为智能设备共享功能

    本章节介绍了共享设备的功能,优势,使用要求,使用规则,如何将智能设备作为共享设备,实现一个智能设备同时与2个IO控制器进行通信的示例,以及常见问题。 一、共享设备功能概述 信号模块可以被不同的IO控制器访问的IO设备被称为\\\"共享设备\\\",智能设备也可以作为共

    2024年02月22日
    浏览(48)
  • Siemens S7-1500TCPU 运动机构系统功能简介

    目录 引言: 1.0 术语定义 2.0 基本知识 2.1 运动系统工艺对象 2.2 坐标系与标架 3.0 运动机构系统类型 3.1 直角坐标型 3.2 轮腿型 3.3 平面关节型 3.4 关节型 3.5 并联型 3.6 圆柱坐标型 3.7 三轴型 4.0 运动系统的运动 4.1 运动类型 4.1.1 线性运动 4.1.2 圆周运动 5.0 区域监视

    2024年04月29日
    浏览(61)
  • 微软若“无故”解雇暴雪 CEO,将付 1500 万美元“分手费”

    上个月,微软宣布以 687 亿美元收购动视暴雪,完成其迄今为止最大的一笔收购案,微软也凭此跃升为全球收入第三大游戏公司。 当时许多人为此感到震惊,尤其在考虑到微软 2021 财年的净收入为 612.71 亿美元时,他们一致猜测对于这个天价收购案,微软应该铺了很久的路。

    2024年02月06日
    浏览(65)
  • 博途PLC1200/1500PLC ModbusTcp通信梯形图篇(轮询)

    关于MODBUS Tcp通信的基础概念,各种通信方案的详细讲解,可以参看下面这篇博客: S7-200SMART PLC Modbus TCP通信(多服务器多从站轮询)_RXXW_Dor的博客-CSDN博客 MBUS_CLIENT作为MODBUS TCP客户端通过S7-200 SMART CPU上的以太网端口进行通信。MBUS_CLIENT可建立客户端-服务器连接、发送MODBUS功

    2024年02月06日
    浏览(119)
  • 一文1500字从0到1搭建 Jenkins 自动化测试平台

    Jenkins 自动化测试平台的作用 自动化构建平台的执行流程(目标)是: 我们将代码提交到代码托管工具上,如github、gitlab、gitee等。 1、Jenkins要能够检测到我们的提交。 2、Jenkins检测到提交后,要自动拉取代码,运行测试,并进行构建、打包。 3、Jenkins执行完测试和构建后,

    2024年02月11日
    浏览(37)
  • 西门子S1500和三菱QPLC的TCP通讯

    QPLC没有以太网口,采用外置以太网QJ71E71模块和S1500的TCP/IP通讯,软件采用GXworks2。 1.首先在QPLC中组态如下图所示,以太网QJ71E71模块安装在机架上的最后一个插槽。型号自己手动输入,类型选择智能,点数32点,起始IO----0400 2.点开以太网设置,设置如下  注意其实I/O要和PLC硬件

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包