当前位置: 首页 > news >正文

个人如何免费建网站网站会员系统怎么做模版

个人如何免费建网站,网站会员系统怎么做模版,做网站表示时间的控件用哪个,中学网站建设工作实施方案原题链接#xff1a;2867. 统计树中的合法路径数目 题目描述#xff1a; 给你一棵 n 个节点的无向树#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges #xff0c;其中 edges[i] [ui, vi] 表示节点 ui 和 vi 在树中有一条边。 …原题链接2867. 统计树中的合法路径数目 题目描述 给你一棵 n 个节点的无向树节点编号为 1 到 n 。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges 其中 edges[i] [ui, vi] 表示节点 ui 和 vi 在树中有一条边。 请你返回树中的 合法路径数目 。 如果在节点 a 到节点 b 之间 恰好有一个 节点的编号是质数那么我们称路径 (a, b) 是 合法的 。 注意 路径 (a, b) 指的是一条从节点 a 开始到节点 b 结束的一个节点序列序列中的节点 互不相同 且相邻节点之间在树上有一条边。路径 (a, b) 和路径 (b, a) 视为 同一条 路径且只计入答案 一次 。 输入输出描述 示例 1 输入n 5, edges [[1,2],[1,3],[2,4],[2,5]] 输出4 解释恰好有一个质数编号的节点路径有 - (1, 2) 因为路径 1 到 2 只包含一个质数 2 。 - (1, 3) 因为路径 1 到 3 只包含一个质数 3 。 - (1, 4) 因为路径 1 到 4 只包含一个质数 2 。 - (2, 4) 因为路径 2 到 4 只包含一个质数 2 。 只有 4 条合法路径。示例 2 输入n 6, edges [[1,2],[1,3],[2,4],[3,5],[3,6]] 输出6 解释恰好有一个质数编号的节点路径有 - (1, 2) 因为路径 1 到 2 只包含一个质数 2 。 - (1, 3) 因为路径 1 到 3 只包含一个质数 3 。 - (1, 4) 因为路径 1 到 4 只包含一个质数 2 。 - (1, 6) 因为路径 1 到 6 只包含一个质数 3 。 - (2, 4) 因为路径 2 到 4 只包含一个质数 2 。 - (3, 6) 因为路径 3 到 6 只包含一个质数 3 。 只有 6 条合法路径。提示 1 n 105edges.length n - 1edges[i].length 21 ui, vi n输入保证 edges 形成一棵合法的树。 解题思路 首先数据量有1e5那么我们可以先预处理线性筛筛出所有质数便于后续处理题目说了合法路径指的是路径上包含刚好一个质数点那么我们dfs的同时枚举每一个质数点考虑每一个质数点的贡献下面画个图描述一下 由于我们需要记录某个点出发在不经过质数点的情况最多经过多少个点我们可以用sz[x]记录从x出发在不经过质数点的情况下最多会经过几个点类似记忆化的思想所以枚举每一个质数贡献的时候如果遇到某个点的sz[y]已经被计算过了直接拿来用即可避免重复搜索。 时间复杂度不考虑预处理线性筛的时间由于采取了记忆化思想每个点只会访问一次所以时间复杂度为O(n)。 空间复杂度O(n)。 cpp代码如下 const int N1e510; typedef long long LL; int primes[N],cnt0; bool st[N]; int init[](){ //线性筛预处理所有质数st[1]true;for(int i2;iN;i){if(!st[i])primes[cnt]i;for(int j0;primes[j](N-1)/i;j){st[primes[j]*i]true;if(i%primes[j]0)break;}}return 0; }(); class Solution { public:long long countPaths(int n, vectorvectorint edges) {vectorvectorintg(n1);vectorintsz(n1);for(auto t:edges){int xt[0],yt[1];g[x].push_back(y);g[y].push_back(x);}vectorintnodes;//dfs遍历在不经过指数的情况下最多经过多少个点也就是非质数连通块大小functionvoid(int,int)dfs[](int x,int fa){ nodes.push_back(x);for(auto y:g[x]){if(y!fa st[y]){dfs(y,x);}}};LL ans0;for(int x1;xn;x){if(st[x])continue; //只需要枚举质数非质数跳过int sum0;for(int y:g[x]){if(!st[y])continue; //y是质数不需要在搜索if(sz[y]0) //没有被搜索过搜索一下{nodes.clear();dfs(y,-1);for(int x:nodes){ //对于这个连通块中所有点都要标记一下连通块大小避免重复计算sz[x]nodes.size();}}ans(LL)sz[y]*sum; //计算贡献sumsz[y]; //sum记录左边的子树大小之和}anssum; //这个也是贡献的一部分}return ans;} };
http://www.zqtcl.cn/news/150653/

相关文章:

  • 巴南城乡建设网站免费网站建设软件大全
  • 湖南网站建设公公司没有自己的网站
  • 刚建设的网站如何推广网站恢复正常
  • 怎么做制作网站的教程永久免费空间免备案
  • 网站维护运营怎么做简单的手机网址大全
  • 网站建设规划设计公司排名使用模块化的网站
  • 南宁网站seo大概多少钱门户网站建设公司渠道
  • 如何建国际商城网站海门做网站公司
  • 做网站应该画什么图注册子公司流程及所需资料
  • 嵊州市建设银行网站怎么自己做游戏软件
  • 用模板快速建站中园建设银行网站
  • 网站建设罒金手指下拉壹陆韩国最新新闻消息
  • 东莞企业网站推广技巧wordpress怎么汉化
  • 17网站一起做网店如何下单iis服务器网站301重定向怎么做
  • 网站如何做线上支付功能seo网站推广优化费用
  • 贵州灵溪seo整站优化wordpress进行不
  • 三网一体网站建设网站开发环境分析
  • 广州白云机场网站建设查询域名备案信息
  • 苗族网站建设中牟做网站
  • 潍坊网站建设建站哪个网站的课件做的好处
  • 网站建设平台杭州网上交易平台
  • 您提交的网站域名无备案我想学网站建设
  • 怎样做国际网站dw网页设计代码免费
  • wordpress做企业站基础微网站开发公司
  • 用上海注册的公司建的网站怎么做asp网站
  • 一个专做特卖的网站千鸟云网站建设
  • 哈尔滨网站优化seo知名公司
  • 企业网站的开发流程个人免费建网站
  • 旅游网站平台建设方案策划书wordpress 自建cdn
  • 网站开发回访话术内容电商网站有哪些