首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
换根DP,LeetCode 2581. 统计可能的树根数目
发布时间:2024-03-03 07:13:45 分类:帮助文档
换根DP,LeetCode 2581. 统计可能的树根数目 目录 一、题目 1、题目描述 2、接口描述 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 Alice 有一棵 n 个节点的树,节点编号为 0 到 n - 1 。树用一个长度为 n - 1 的二维整数数组 edges 表示,其中 edges[i] = [ai, bi] ,表示树中节点 ai 和 bi 之间有一条边。 Alice 想要 Bob 找到这棵树的根。她允许 Bob 对这棵树进行若干次 猜测 。每一次猜测,Bob 做如下事情: 选择两个 不相等 的整数 u 和 v ,且树中必须存在边 [u, v] 。Bob 猜测树中 u 是 v 的 父节点 。 Bob 的猜测用二维整数数组 guesses 表示,其中 guesses[j] = [uj, vj] 表示 Bob 猜 uj 是 vj 的父节点。 Alice 非常懒,她不想逐个回答 Bob 的猜测,只告诉 Bob 这些猜测里面 至少 有 k 个猜测的结果为 true 。 给你二维整数数组 edges ,Bob 的所有猜测和整数 k ,请你返回可能成为树根的 节点数目 。如果没有这样的树,则返回 0。 2、接口描述 class Solution { public: int rootCount(vector
>& edges, vector
>& guesses, int k) { } }; 3、原题链接 2581. 统计可能的树根数目 二、解题报告 1、思路分析 暴力思路:查询每一个节点作为根时的猜对的数目 遍历一次为O(N),总的时间复杂度为O(N^2) 我们发现枚举完x作为根的情况再去枚举其邻接点y作为根,只会改变x,y之间的关系 也就是说,每个节点作为根的情况和其相邻节点作为根的情况具有转移关系 我们先以0为根跑一遍,统计猜测正确的数目tot 以那么0的邻接点x的猜测数目就是tot - isguessed(x, y) + isguessed(y, x) 对于猜测数对我们可以哈希表存储 其它看代码即可 2、复杂度 时间复杂度: O(n+m)空间复杂度:O(n+m) 3、代码详解 class Solution { public: static constexpr int N = 1e5 + 10; typedef long long ll; int rootCount(vector
>& edges, vector
>& guesses, int k) { vector
> g(edges.size() + 1); for(auto& p : edges) g[p[0]].emplace_back(p[1]), g[p[1]].emplace_back(p[0]); int ret = 0, tot = 0; unordered_set
mp; for(auto& p : guesses) mp.insert((ll)p[0] << 32 | p[1]); function
dfs = [&](int x, int fa){ for(int y : g[x]) if(y != fa) tot += mp.count((ll)x << 32 | y), dfs(y, x); }; dfs(0, -1); function
foo = [&](int x, int fa, int t){ ret += t >= k; for(int y : g[x]) if(y != fa) foo(y, x, t - mp.count((ll)x << 32 | y) + mp.count((ll)y << 32 | x)); }; foo(0, -1, tot); return ret; } };
上一篇
架构篇18:单服务器高性能模式-PPC与TPC
下一篇
幻兽帕鲁服务器多少钱?有买过的吗?便宜不
相关文章
CentOS用nginx搭建文件下载服务器
【Linux】- Linux编辑器-vim的使用
公司企业邮箱怎么起名
netstat命令详解
幻兽帕鲁服务器多少钱?阿里云帕鲁服务器租借价格及部署教程分享
帕鲁服务器怎么开,palworld,palserver,steamcmd,内存泄露解决
百度云怎么解析香港主机
Linux快照指令
本地部署Tomcat开源服务器并结合内网穿透远程访问
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.