首页 > 其他分享 >20240904

20240904

时间:2024-10-17 20:43:12浏览次数:1  
标签:dep cnt int 20240904 back vis ans

Changes in Antwanland

我们可以考虑直接枚举根,我们假设从根出发的深度为 \(i\) 的结点数量为 \(cnt_i\) ,那么我们只需要找到第一个 \(cnt_1 + cnt_2 + ... + cnt_x \geq k\) 即可,但是一个点的中心有可能可以在边上,所以跑两边即可

#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N = 1e3 + 5;

int n, k, cnt[N], ans = 1e9;

bool vis[N];

vector<int> g[N];

void dfs(int u, int f, int dep) {
  cnt[dep]++;
  for (auto v : g[u]) {
    if (v != f && !vis[v]) {
      dfs(v, u, dep + 1);
    }
  }
}

signed main() {
  cin >> n >> k;
  for (int i = 1, u, v; i < n; i++) {
    cin >> u >> v;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  for (int i = 1; i <= n; i++) {
    fill(cnt, cnt + n + 1, 0);
    dfs(i, 0, 0);
    int sum = 0;
    for (int j = 0; j <= n; j++) {
      sum += cnt[j];
      if (sum >= k) {
        ans = min(ans, j * 2 + 1);
      }
    }
  }
  for (int u = 1; u <= n; u++) {
    for (auto v : g[u]) {
      vis[v] = vis[u] = true;
      fill(cnt, cnt + n + 1, 0);
      dfs(v, 0, 0);
      dfs(u, 0, 0);
      int sum = 0;
      for (int j = 0; j <= n; j++) {
        sum += cnt[j];
        if (sum >= k) {
          ans = min(ans, j * 2 + 2);
        }
      }
      vis[v] = vis[u] = false;
    }
  }
  cout << ans;
  return 0;
}

Depth Range Update

暴力可过

标签:dep,cnt,int,20240904,back,vis,ans
From: https://www.cnblogs.com/libohan/p/18473041

相关文章

  • 20240904_192638 mysql 填空题 存储过程进阶
    定义一个存储过程的形参,它接收数据,参数名为id,为int类型inidint定义一个存储过程的形参,它返回数据,参数名为name,是varchar(5)类型outnamevarchar(5)定义一个存储过程的形参,它一边接收数据一边返回数据,参数名为num,是int类型inoutnumint声明一个名为info的游标,保存查询teac......
  • 20240904_182638 mysql 填空题 变量
    查看所有的系统变量名称showvariables查看所有系统变量中以auto开头的名称showvariableslike'auto%'查看系统变量autocommit的值select@@autocommit设置系统变量autocommit的值为1setautocommit=1设置自定义变量name的值为'tom'set@name='tom'查看自定义变量nam......
  • 20240904_172638 mysql 填空题 存储过程
    创建一个名为p1的存储过程,只写第一行createprocedurep1()存储过程的开始,单词begin存储过程的结束,单词end调用名为p1的存储过程,不传参数callp1()修改每行命令的结束符号,改成$$delimiter$$查看名为p1的存储过程的创建语句showcreateprocedurep1删除名为p1的存储过......
  • 20240904:字符串选做
    P4555[国家集训队]最长双回文串题意:给定字符串\(s\),找到他最长双回文串\(t\)的长度。双回文串定义为存在一个\(i>1\)使得\(t[1,i)\)和\(t[i,n]\)都是回文串。\(\verts\vert\le10^5\)。二分哈希求出所有回文中心的半径,设以\(i\)为中心的最长回文串为\([l_i,......
  • 20240904_132638 mysql 填空题 备份与恢复
    备份数据,以root用户身份,提示输入密码后,将my_school数据库的所有结构和数据导出为SQL语句,并将这些SQL语句保存到当前目录下的bf.sql文件中mysqldump-uroot-pmy_school>bf.sql恢复数据,以root用户的身份连接到MySQL服务器,然后执行bf.sql的命令把数据恢复到my_s......
  • 20240904_121403 mysql 数据库的备份与恢复 命令篇
    对数据库进行备份操作通过cmd打开命令提示符关注当前的路径通过命令来实现备份备份my_school的库到bf2.sql备份的结果在当前的路径下C:\Users\Administrator会存在bf2.sql文件恢复备份提前建库进入mysql创建要恢复的库my_schoolcmd命令导入sql内容当前路径要......
  • 20240904_122638 mysql 填空题 dcl
    记录用户帐户密码的数据表,保存在哪个数据库中mysql记录用户帐户密码的数据表,叫什么名字user创建了一个名为pyhui的用户,该用户只能从本地机器连接到MySQL服务器,并且其密码是abccreateuser'pyhui'@'localhost'identifiedby'abc'删除名为pyhui的用户,该用户只能从localho......
  • 20240904_112638 mysql 填空题 事务
    开启事务starttransaction提交事务commit回滚事务rollback事务中创建一个名为c的存档点savepointc事务中回到名为m的存档点savepointm设置自动提交打开setautocommit=1设置自动提交关闭setautocommit=0......
  • 20240904_070346 mysql 存储过程 认识
    什么是存储过程存储过程的特点......
  • 20240904_080346 mysql 存储过程 创建与使用存储过程
    存储过程的使用修改结束符号将默认的句子结束符号由;改为$号的写法创建存储过程调用存储过程......