P6523 「Wdoi-1」加密通信 题解

博客介绍了Wdoi-1加密通信问题的四种算法解法,针对不同数据范围提供了不同的解决方案。算法一适用于小数据,通过枚举质因子递推;算法二在理论上无法通过所有数据,但实际得分可达40pts;算法三利用gcd性质降低复杂度至O(Tnlogm),解决70%数据;算法四通过寻找序列中的不等位置,达到100%正确率。
摘要由CSDN通过智能技术生成

博客园同步

原题链接

简要题意:

给定一个数列 a 1 , a 2 ⋯ a n − 1 a_1 , a_2 \cdots a_{n-1} a1,a2an1,求 任意一个满足以下条件的长度为 n n n 的质数数列 ans \text{ans} ans

ans i × ans i + 1 = a i \text{ans}_i \times \text{ans}_{i+1} = a_i ansi×ansi+1=ai

本题是某洛谷公开赛 T 1 T1 T1,有一定思维难度。

前记

本人 193 m s 193ms 193ms 的代码截止 2020.5.5 12:00 \text{2020.5.5 12:00} 2020.5.5 12:00 排名第一,效率最高。 如果不开火车头优化就屈居第三了 (实际上估计也 不太 会有人能超过它了,除非是变态卡常)

下面的 m m m 指的是:

m = max ⁡ i = 1 n a i m = \max_{i=1}^n a_i m=i=1maxnai

并且,各算法对应的数据范围没有下限是因为不存在特殊情况,特此说明。

算法一

对于 20 % 20 \% 20% 的数据, n ≤ 5 n \leq 5 n5 m ≤ 10 m \leq 10 m10.

显然我们可以发现,如果确定了 p 1 p_1 p1,就可以递推出整个数列。

由于 p 1 p_1 p1 只受到 a 1 a_1 a1 的限制(即 p 1 ∣ a 1 p_1 | a_1 p1a1),所以我们枚举 a 1 a_1 a1质因子 作为 p 1 p_1 p1,然后递推判断即可。

时间复杂度: O ( T n m ) O(Tn \sqrt{m}) O(Tnm )

解释: T T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值