`

[转]满足ai * aj = ak的最大值

阅读更多
给定一个正整数集合 s = {a1, a2, ..., an},
存在ai * aj = ak, i != j != k
试找出满足上述条件的最大数ak,如果不存在满足上述条件的三个数,则输出-1

算法分析:
1. 不排序,先利用找最大算法找出第一大的值Max
2. 然后利用Max的平方根r作为划分标准将集合s划分为两部分A、B。使得A中小于r,B中大于r
3. 令|A|=a, |B|=b
4. if a>b
5. then 按照从小到大顺序排序B中元素
6. 对A中每个元素x利用二分检索检查在B中是否有元素y使得x*y=s
7. else 按照从小到大顺序排序A中元素
8. 对B中每个元素y利用二分检索检查在A中是否有元素x得x*y=s
9. 不满足的话跳回步骤1找第二大值赋给Max直到所有数都选择后输出-1
分享到:
评论

相关推荐

    编程练习题 提高编程能力

    - 保存较大的数作为最大值,较小的数作为最小值。 ### 7. 字符统计 - **题目**:统计输入字符串中的英文字母数量。 - **知识点**: - 使用循环结构逐个遍历字符串中的字符。 - 判断每个字符是否为字母,可以...

    MAX SUM 给定由n整数(可能为负数)组成的序列 {a1,a2,…,an},求该序列形如ai+ai+1,…,+aj的子段和的最大值。当所有的整数均为负数时定义其最大子段和为0。

    根据题目要求,我们面对的是一个经典的编程问题:求解给定整数序列中的最大子段和。本题目的核心在于如何高效地找到一个序列中所有连续子序列的最大和。如果序列中的所有元素都是负数,则最大子段和定义为0。 ### ...

    台州市2023年青少年信息学竞赛复赛试题(初中组)

    **题目描述**:对于给定的n个正整数,求出满足条件(aj^2 <= ak <= aj)的数对(a_j, a_k)的数量,其中j和k可以在[1, n]区间内任意选取。 **输入格式**:输入包括两部分,第一行为n,表示数组长度;第二行为n个空格...

    IMS Status Codes

    - **AU**:指定的SSAs长度超过了最大允许值。这可能涉及到存储空间不足或配置限制。 - **AY**:响应备用PCB中的逻辑终端名找到了分配给多个物理终端。这违反了IMS对一对一逻辑终端到物理终端映射的规则。 - **AZ**...

    阿里巴巴数学竞赛 题目和答案

    - **解题思路**:每个学期完成一个证明,一旦证明了“Ai⇒Aj”,则后续证明中的“Ai⇒Ak”也会被间接证明。因此,可以将这些逻辑陈述看作是一个图,每完成一个证明相当于在图中添加一条边。目标是最优化利用这些边来...

    最大覆盖问题算法设计.docx

    该问题的定义是:给定n个整数a1,a2,...,an组成的序列,如果对于 i <= k <= j ,有ak<=|aj|,则称aj覆盖序列区间ai,ai+1,...,aj相应的覆盖区间长度为 j-i+1。最大覆盖问题要求给定序列的最大覆盖区间长度 L,即:L=...

    动态规划算法(eclipse环境下)

    2. **递推方程**:`m[i][j] = min(m[i][k] + m[k+1][j] + pi-1 * pk * pj)`, 其中`i ≤ k ,`pi-1`是矩阵`Ai`的行数,`pj`是矩阵`Aj`的列数,`pk`是矩阵`Ak`的列数。 3. **边界条件**:当`i == j`时,`m[i][j] = 0`...

    层次分析法研究报告.pptx

    如果判断矩阵满足一致性要求,其最大特征值λ*应该等于所在矩阵的阶数m。不一致的矩阵可以通过一致性比率(CR)来评估,CR小于0.1通常被认为是可接受的一致性水平。 4. **计算权重**:一旦判断矩阵通过一致性检验,就...

    第五章 数组&广义表1

    - `max_L`函数:这个函数递归地寻找数组中的最大值,从下标`i`开始,返回`i`位置及之前的最大值。例如,对于数组`1 2 3 4 5 6`,`print(max_L(5))`将输出6。 - `sum_L`函数:类似地,此函数计算从下标`i`开始到0的...

    中科大 算法导论 课件(全套10)贪心算法

    构造子问题空间,定义`Sij`为所有与活动ai和aj兼容的活动集合,即这些活动的结束时间不超过ai的开始时间,开始时间不早于aj的结束时间。为了简化问题,引入虚拟活动a0和an+1,分别设置开始时间为0和结束时间为无穷...

    2021年中国西部数学邀请赛(word版).docx

    8. 给定实数 q 满足 1,定义数列 xn 如下:设正整数n 的二进制表示为 n=a0+a1·2+a2·22+…+ak·2k,ai∈{0,1},i=0,1,…,k,令 xn=a0+a1q+a2q2+…+akqk.证明:对任意正整数 n,存在正整数 m,使得 xn≤xm≤xn+1. ...

    矩阵连乘实验报告.docx

    当 i时,利用最优子结构性质,m[i][j] 可以通过计算所有可能的断点 k (i) 的 m[i][k] + m[k+1][j] + pi-1pkpj 来确定,其中 pi-1pkpj 表示矩阵 Ai-1 与 Aj 相乘的代价。 3. 计算最优值:采用自底向上的动态规划策略...

    一个判定出栈序列的新方法 (2011年)

    具体来说,对于进栈序列的每一个元素ak,如果在DSSK(即ak之前的降序段集的子集)中不存在任何一个降序段DS使得DS最小值小于ak小于DS最大值,那么该序列就是一个合理的出栈序列。换言之,要么ak是该降序段的最大值,...

    IDDFS 加法链

    4. 对于序列中的每一项ak(1 ≤ k ≤ m),存在两个整数i和j(0 ≤ i, j ≤ k-1),使得ak = ai + aj。这两个整数不一定不同。 给定一个整数n,任务是构造一个具有最小长度的加法链。如果存在多个这样的序列,任选...

Global site tag (gtag.js) - Google Analytics