码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 3712. 根能抵达的点


    Powered by:NEFU AB-IN

    Link

    文章目录

    • 3712. 根能抵达的点
      • 题意
      • 思路
      • 代码

    3712. 根能抵达的点

    • 题意

      给定一棵由 N 个节点构成的带边权树。
      节点编号从 0 到 N−1,其中 0 号点为根节点。
      最初,从根节点可以抵达所有节点(包括自己)。
      如果我们将所有边权小于 X 的边全部删掉,那么从根节点可以抵达的节点数目就可能发生改变。
      现在,给定一个整数 Y,请你找到最小的非负整数 X,使得所有边权小于 X 的边都被删掉以后,根节点能够抵达的节点数目(包括自己)不超过 Y。

    • 思路

      二分X即可,X最大为最大的边+1
      每次选X,都进行一次DFS,看看剩下多少点

    • 代码

      /*
      * @Author: NEFU AB-IN
      * @Date: 2022-08-17 11:01:52
      * @FilePath: \Acwing\3712\3712.cpp
      * @LastEditTime: 2022-08-17 15:06:25
      */
      #include 
      using namespace std;
      #define N n + 100
      #define int long long
      #define SZ(X) ((int)(X).size())
      #define IOS                                                                                                            \
          ios::sync_with_stdio(false);                                                                                       \
          cin.tie(nullptr);                                                                                                  \
          cout.tie(nullptr)
      #define DEBUG(X) cout << #X << ": " << X << '\n'
      typedef pair<int, int> PII;
      
      void solve()
      {
          int n, y, mx = 0;
          cin >> n >> y;
      
          vector<PII> g[N];
          for (int i = 1; i < n; ++i)
          {
              int u, v, w;
              cin >> u >> v >> w;
              g[u].push_back({v, w});
              g[v].push_back({u, w});
              mx = max(mx, w);
          }
      
          int cnt = 0;
          function<void(int, int, int)> dfs = [&](int u, int fa, int x) {
              cnt++;
              for (auto [v, w] : g[u])
              {
                  if (v == fa)
                      continue;
                  if (w >= x)
                      dfs(v, u, x);
              }
          };
      
          auto check = [&](int x) {
              dfs(0, -1, x);
              return cnt <= y;
          };
      
          int l = 0, r = mx + 1;
          while (l < r)
          {
              cnt = 0;
              int mid = l + r >> 1;
              if (check(mid))
                  r = mid;
              else
                  l = mid + 1;
          }
      
          cout << l << '\n';
      
          return;
      }
      
      signed main()
      {
          IOS;
          int T;
          cin >> T;
          while (T--)
              solve();
          return 0;
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
      • 65
      • 66
      • 67
      • 68
      • 69
      • 70
      • 71
      • 72
      • 73
      • 74
      • 75
  • 相关阅读:
    Vue3最佳实践 第八章 ESLint 与 测试 ( ESLint )
    HarmonyOS ArkUI实战开发-NAPI 加载原理(上)
    机器学习笔记 - 时间序列的季节性
    微信小程序查缺补漏
    一个简单HTML5期末考核大作业,学生个人html静态网页制作代码
    美颜滤镜SDK,企业技术解决方案
    买瓜(dfs+剪枝)
    基于JavaSwing开发麻雀捉小鸡游戏+论文: (大作业/毕业设计)
    正定二次型
    SpringBoot XML和JavaConfig
  • 原文地址:https://blog.csdn.net/qq_45859188/article/details/126386745
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号