路径上所有站点信号强度的 gcd 为偶数,当且仅当路径上每个强度都是偶数:一旦出现奇数,gcd 必为奇数。因此只需统计整条路径都落在偶强度站点上的简单路径(含单点)。
只保留偶强度站点以及它们之间原来的链路,得到一个森林。在大小为 k 的连通块中,任意两点之间恰有一条路径,再加上 k 个单点,路径数为 2k(k+1)。对每个偶强度连通块累加即可。
时间复杂度 O(n),空间复杂度 O(n)。
产业园里有 n 个站点,用 n−1 条双向链路连成一棵树,站点编号为 1 到 n。站点 i 的信号强度为 ai。一条简单路径的耦合度定义为路径上所有站点信号强度的最大公因数 gcd;若路径只含一个站点,则耦合度就是该点强度。路径 u→v 与 v→u 视为同一条,单点路径 u→u 也要计入。请统计耦合度为偶数的简单路径条数。
约束:1≤n≤200000,1≤ai≤1000000。
第一行一个整数 n,表示站点数。 第二行 n 个整数 a1,a2,…,an,表示信号强度。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.