代刷网站推广,广州工程建设网站,如何制作app软件赚钱,银川网站建设就找湖海小蓝随手写出了含有 n n n 个正整数的数组 a 1 , a 2 , ⋅ ⋅ ⋅ , a n {a_1, a_2, , a_n} a1,a2,⋅⋅⋅,an #xff0c;他发现可以轻松地算出有多少个有序二元组 ( i , j ) (i, j) (i,j) 满足 a j a_j aj 是 a i a_i ai 的一个因数。因此他定义一个整数对 …小蓝随手写出了含有 n n n 个正整数的数组 a 1 , a 2 , ⋅ ⋅ ⋅ , a n {a_1, a_2, · · · , a_n} a1,a2,⋅⋅⋅,an 他发现可以轻松地算出有多少个有序二元组 ( i , j ) (i, j) (i,j) 满足 a j a_j aj 是 a i a_i ai 的一个因数。因此他定义一个整数对 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 是一个整数对 ( x 2 , y 2 ) (x_2, y_2) (x2,y2) 的“因数”当且仅当 x 1 x_1 x1 和 y 1 y_1 y1 分别是 x 2 x_2 x2 和 y 2 y_2 y2的因数。他想知道有多少个有序四元组 ( i , j , k , l ) (i, j, k, l) (i,j,k,l) 满足 ( a i , a j ) (a_i, a_j) (ai,aj) 是 ( a k , a l (a_k, a_l (ak,al) 的因数其中 i , j , k , l i, j, k, l i,j,k,l 互不相等。
问题分析
我们需要找到所有满足以下条件的有序四元组 ( i , j , k , l ) (i, j, k, l) (i,j,k,l) ( a i , a j ) (a_i, a_j) (ai,aj) 是 ( a k , a l ) (a_k, a_l) (ak,al) 的因数即 a i a_i ai 是 a k a_k ak 的因数。 a j a_j aj 是 a l a_l al 的因数。 i , j , k , l i, j, k, l i,j,k,l 互不相等。
解决思路
统计每个数的因数关系 对于数组中的每个数 x x x统计有多少个数是 x x x 的因数。遍历数组对于每个数 x x x遍历所有可能的因数 d d d d d d 从 1 到 s q r t ( x ) sqrt(x) sqrt(x)如果 d d d 是 x x x 的因数则记录 d d d 和 x / d x/d x/d。使用一个哈希表或数组 factor_count 来记录每个数的因数个数。 枚举四元组 对于每一对 ( a k , a l ) (a_k, a_l) (ak,al)找到所有满足 a i a_i ai 是 a k a_k ak 的因数且 a j a_j aj 是 a l a_l al 的因数的 ( a i , a j ) (a_i, a_j) (ai,aj)。由于 i , j , k , l i, j, k, l i,j,k,l 必须互不相等需要排除重复的情况。 计算结果 对于每一对 ( a k , a l ) (a_k, a_l) (ak,al)计算满足条件的 ( a i , a j ) (a_i, a_j) (ai,aj) 的数量并累加到结果中。如果 a k a_k ak 和 a l a_l al 的因数中包含本身需要减去重复的情况。
#include iostream
#include vector
#include unordered_map
#include cmath
using namespace std;// 统计每个数的因数个数
unordered_mapint, int countFactors(const vectorint nums) {unordered_mapint, int factor_count;for (int x : nums) {int count 0;for (int d 1; d sqrt(x); d) {if (x % d 0) {count;if (d ! x / d) {count;}}}factor_count[x] count;}return factor_count;
}// 计算满足条件的四元组数量
int countValidQuadruples(const vectorint nums) {int n nums.size();if (n 4) return 0;// 统计每个数的因数个数unordered_mapint, int factor_count countFactors(nums);int result 0;for (int k 0; k n; k) {for (int l 0; l n; l) {if (k l) continue; // 确保 k 和 l 不相等int ak nums[k];int al nums[l];// 计算满足 ai 是 ak 的因数且 aj 是 al 的因数的 (ai, aj) 的数量int count_ai factor_count[ak];int count_aj factor_count[al];// 排除 ai 或 aj 等于 ak 或 al 的情况if (ak % ak 0 al % al 0) {count_ai--;count_aj--;}result count_ai * count_aj;}}return result;
}复杂度分析
时间复杂度 预处理因数关系 O ( n ∗ m a x _ n u m ) O(n * \sqrt{max\_num}) O(n∗max_num )其中 n n n 是数组长度 m a x _ n u m max\_num max_num 是数组中的最大值。枚举四元组 O ( n 2 ) O(n^2) O(n2)。总时间复杂度 O ( n 2 n ∗ m a x _ n u m ) O(n^2 n * \sqrt{max\_num}) O(n2n∗max_num )。 空间复杂度 哈希表 factor_count 的空间复杂度为 O ( n ) O(n) O(n)。 文章转载自: http://www.morning.dyxlm.cn.gov.cn.dyxlm.cn http://www.morning.khzml.cn.gov.cn.khzml.cn http://www.morning.bmncq.cn.gov.cn.bmncq.cn http://www.morning.rkbly.cn.gov.cn.rkbly.cn http://www.morning.slpcl.cn.gov.cn.slpcl.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn http://www.morning.rpwck.cn.gov.cn.rpwck.cn http://www.morning.nxhjg.cn.gov.cn.nxhjg.cn http://www.morning.dkmzr.cn.gov.cn.dkmzr.cn http://www.morning.mkfr.cn.gov.cn.mkfr.cn http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.qqhmg.cn.gov.cn.qqhmg.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.pqnps.cn.gov.cn.pqnps.cn http://www.morning.zqcdl.cn.gov.cn.zqcdl.cn http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn http://www.morning.kjyfq.cn.gov.cn.kjyfq.cn http://www.morning.bjsites.com.gov.cn.bjsites.com http://www.morning.lltdf.cn.gov.cn.lltdf.cn http://www.morning.fbylq.cn.gov.cn.fbylq.cn http://www.morning.mszls.cn.gov.cn.mszls.cn http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn http://www.morning.pghfy.cn.gov.cn.pghfy.cn http://www.morning.dyrzm.cn.gov.cn.dyrzm.cn http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn http://www.morning.yrnll.cn.gov.cn.yrnll.cn http://www.morning.mrncd.cn.gov.cn.mrncd.cn http://www.morning.fyxr.cn.gov.cn.fyxr.cn http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn http://www.morning.yslfn.cn.gov.cn.yslfn.cn http://www.morning.tgczj.cn.gov.cn.tgczj.cn http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.yqpck.cn.gov.cn.yqpck.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn http://www.morning.qlwfz.cn.gov.cn.qlwfz.cn http://www.morning.crqbt.cn.gov.cn.crqbt.cn http://www.morning.fqklt.cn.gov.cn.fqklt.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.ykgkh.cn.gov.cn.ykgkh.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.mnsts.cn.gov.cn.mnsts.cn http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.hqllx.cn.gov.cn.hqllx.cn http://www.morning.wfykn.cn.gov.cn.wfykn.cn http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn http://www.morning.ftzll.cn.gov.cn.ftzll.cn http://www.morning.fpczq.cn.gov.cn.fpczq.cn http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.srzhm.cn.gov.cn.srzhm.cn http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn http://www.morning.flmxl.cn.gov.cn.flmxl.cn http://www.morning.jtcq.cn.gov.cn.jtcq.cn http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn http://www.morning.qdxkn.cn.gov.cn.qdxkn.cn http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn http://www.morning.rnpt.cn.gov.cn.rnpt.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.lgkbn.cn.gov.cn.lgkbn.cn http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn http://www.morning.rcww.cn.gov.cn.rcww.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.mjats.com.gov.cn.mjats.com http://www.morning.dshxj.cn.gov.cn.dshxj.cn http://www.morning.stwxr.cn.gov.cn.stwxr.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn