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

网络叶子 网站推广做一手房做那个网站好

网络叶子 网站推广,做一手房做那个网站好,wordpress做app,成都网站快速排名软件目录 2867. 统计树中的合法路径数目 题目描述#xff1a; 实现代码与思路#xff1a; 筛质数 DFS 原理思路#xff1a; 2867. 统计树中的合法路径数目 题目描述#xff1a; 给你一棵 n 个节点的无向树#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 …目录 2867. 统计树中的合法路径数目 题目描述 实现代码与思路 筛质数 DFS  原理思路 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 形成一棵合法的树。 实现代码与思路 筛质数 DFS  class Solution {private final static int N (int)1e5 10;// 构建图邻接表int[] h new int[N], e new int[N * 2], ne new int[N * 2];int idx;boolean[] np new boolean[N 1]; // 筛选质数// 筛选1 ~ n 之中的质数public void getPrimes() {np[1] true;for (int i 2; i * i N; i) {if (!np[i]) { // 若是质数向后利用其筛选for (int j i * i; j N; j i) {np[j] true; // 被筛掉}}}} // 连接边public void add(int a, int b) {e[idx] b; ne[idx] h[a]; h[a] idx;}public long countPaths(int n, int[][] edges) {getPrimes();Arrays.fill(h, -1);// 加边for (int i 0; i edges.length; i) {int a edges[i][0];int b edges[i][1];add(a, b);add(b, a);}long res 0;int[] st2 new int[n 1]; // 记忆化搜索判断是否已经计算过以此节点为头的子树中非质数的个数for (int cur 1; cur n; cur) {if (np[cur]) continue; // 起始头不遍历非质数System.out.println(cur);int sum 0; // 以当前节点为头各个子树中非质数的节点和for (int i h[cur]; i ! -1; i ne[i]) {int j e[i];if (!np[j]) continue; // 不遍历质数if (st2[j] 0) { // 以非指数节点开头记忆化搜索记录下来个数ListInteger nodes new ArrayListInteger();dfs(j, -1, nodes);for (int t: nodes) {st2[t] nodes.size();}}res (long) st2[j] * sum; // 和以及遍历计算出的结点和相乘计算非质数与非质数经过一个质数的路径sum st2[j];}res sum; // 加上头节点开始的路径}return res;}// dfspublic void dfs(int x, int fa, ListInteger nodes) {nodes.add(x);for (int i h[x]; i ! -1; i ne[i]) {int j e[i];if (j ! fa np[j]) {dfs(j, x, nodes);}}} } 原理思路 筛选出质数建图以质数开始向外遍历一次找到其非质数的子树dfs计算每个子树的非质数个数通过计算算出此质数相连的所有路径。最终算出全部符合条件的路径个数。详见代码。
http://www.zqtcl.cn/news/425165/

相关文章:

  • 太仓网站建设平台成都家装设计公司排名
  • 现在建一个网站一年费用只要几百元如何建一个免费试用网站
  • 网站没有被收录销售型网站的建设流程及特点
  • 成都58手机微信网站建设名录近一周财经新闻热点
  • wordpress情侣网站源码微信开放平台官网登录
  • 网站改版提示无需改版有没有兼职做设计的网站
  • 网站sem怎么做网络建设设计方案
  • wap网站在线生成做饰品网站
  • 网站主机在哪里注册呢江西的赣州网站建设
  • 零基础网站建设视频教程建筑设计专业是干什么的
  • 淘客做网站的话虚拟主机多大重庆网上房地产网签合同查询
  • 官网建站网站seo关键字优化软件
  • 网站制作的内容什么好开发板用什么语言编程
  • 医院品牌网站建设aws创建wordpress
  • dw做的网站怎么让别人看到动易网站频道栏目字体大小修改
  • 东莞网站设计公司排名辽宁建设工程信息网网上开标
  • 网站推广工具有页面素材图片
  • 网页设计搭建网站外贸求购信息平台
  • 仓库改造类网站怎么做手机创建网站的软件
  • 成都平台网站建设公司邯郸网络科技公司
  • 热门课程自己做网站大型购物网站建站
  • apache 创建网站重庆建站模板
  • 手机怎么制作网站叶县建设局网站
  • 怎么做后台网站一键更新搜索引擎优化的主要策略
  • 站酷网免费素材图库官网国外域名购买
  • 石家庄个人谁做网站天体摄影
  • 徐州集团网站建设网站排名快速提升工具
  • 自己创业做原公司一样的网站做网站要学会什么语言
  • 宿州高端网站建设公司网络业务
  • 做多语言版本网站网站收录低