📜  GOCC18:2020 年谷歌在线编程挑战赛 – 新毕业生(印度)

📅  最后修改于: 2022-05-13 01:58:17.475000             🧑  作者: Mango

GOCC18:2020 年谷歌在线编程挑战赛 – 新毕业生(印度)

2020年应届毕业生谷歌在线挑战赛(GOCC 18)2020年于2020年9月26日举行。

这是一个 60 分钟的在线测试和 2 个要解决的编码问题。考试在 HackerEarth 平台上进行。

这个过程是,首先你的简历应该被列入考试的候选名单。

考试时间 - 1小时

第一个问题:查询范围

给定一个包含 N 个整数的数组 A。您需要回答以下类型的 Q 查询:

LR

确定将索引 L 到 R 的所有数组值相除的不同素数的计数。

注意:考虑基于 1 的索引

输入格式:

  • 第一行包含一个整数 T,表示测试用例的数量。
  • 每个测试用例的第一行包含一个整数 N。
  • 每个测试用例的第二行包含 N 个用空格分隔的整数,表示 A。
  • 第三行包含整数 Q。
  • 接下来,Q 行包含两个以空格分隔的整数,表示查询。

输出格式;

打印除以索引 L 到 R 的所有数组值的不同素数的计数。

经验:我已经使用分段树解决了这个问题 https://www.geeksforgeeks.org/segment-tree-set-1-range-minimum-query/ 参见这篇关于范围最小查询的文章,它类似于这个问题。

第二个问题——加权树的价值

给定一个带有 N 个节点的加权无向树。每条边都有一个与之相关的权重。

您需要找到 ∑(i=1 到 N-1) ∑(j=i+1 到 N) F(i,j)函数的值,其中 F(i,j) 表示边缘权重的总和节点 i 和 j 之间的简单路径。

输入格式:

  • 第一行包含一个整数 T,表示测试用例的数量。
  • 每个测试用例的第一行包含一个整数 N,表示树中的节点数。
  • 接下来的 N-1 行包含三个以空格分隔的整数 uvw,表示 u 和 v 之间的一条边,权重为 w。

输出格式:

对于每个测试用例,在新行中打印函数模 10^9 + 7 的值。