首发题解,庆祝一下
大家好,我是ЭНТДЖЕЙ,今天是我2026年第十五次正式发题解!
2026年发布的题解!
能不能点个赞
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
首先简化题意:
* 就是给定一个数组aaa,求 ∏i=lrai是完全平方数\prod_{i=l}^{r} a_i是完全平方数∏i=lr ai 是完全平方数 的个数
然后就是写代码
* 处理输入(READ):
* 正常输入
* 核心部分(PROCESS):
* 暴力枚举,会TLE
* 那么只能运用一些不同于枚举的方法了:
* 利用完全平方数的特点:指数都为偶数
* 那么我们只需要记录底数出现的奇偶性(利用 ^=1 ),看看这种情况出现的次数,算出一共有多少种不同的 l,rl,rl,r 满足∏i=lrai是完全平方数\prod_{i=l}^{r} a_i是完全平方数∏i=lr ai 是完全平方数
* 但为什么记录底数出现的奇偶性就彳亍了呢?
* 来分析完全平方数的特点:
* 设一个完全平方数为yyy,则yyy的两个且仅这两个相同的因数为sqrt(y)sqrt(y)sqrt(y),设sqrt(y)sqrt(y)sqrt(y)为xxx,即x×x=yx × x = yx×x=y
* x=p1a1×p2a2×p3a3×⋯x = p^{a_1}_1 × p^{a_2}_2 × p^{a_3}_3 × \cdotsx=p1a1 ×p2a2 ×p3a3 ×⋯
* 则 :
x×x=(p1a1×p2a2×p3a3×⋯ )×(p1a1×p2a2×p3a3×⋯ )=p12a1×p22a2×p32a3×⋯ x \times x = (p_1^{a_1} \times p_2^{a_2} \times p_3^{a_3} \times \cdots) \times (p_1^{a_1} \times p_2^{a_2} \times p_3^{a_3} \times \cdots) = p_1^{2a_1} \times p_2^{2a_2} \times p_3^{2a_3} \times \cdots x×x=(p1a1 ×p2a2 ×p3a3
×⋯)×(p1a1 ×p2a2 ×p3a3 ×⋯)=p12a1 ×p22a2 ×p32a3 ×⋯
* 一个数乘以2一定是偶数(2ai2a_i2ai ),所以完全平方数仅仅需要看TA的所有(没意识到,错了好几次)质因数的指数是否都为偶数。反过来,如果一个数的所有质因子指数都是偶数,那它也一定是完全平方数(把每个指数除以2,就得到平方根)。
* 最后输出(WRITE):
* 正常输出
完整代码:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
🎉完结撒花🎉
怎么感觉这篇又长又短捏?