首页 > 其他分享 >闲话 24.10.13

闲话 24.10.13

时间:2024-10-13 15:48:39浏览次数:1  
标签:13 le 闲话 bmod 24.10 给定 多项式 求值 prod

闲话

还有不到两周就 csp-j/s 了(
祝大家别挂分(

没有闲话题材了啊!

今日推歌:花朵 by 合目 feat. 诗岸

那些你不要的:拉格朗日……插值?

给定 \(n, k\)。给定一个 \(n\) 阶多项式 \(f(x)\),以及 \(k\) 个无重根首一多项式 \(f_1(x), \dots, f_k(x)\),第 \(i\) 个多项式的次数为 \(m_i > 0\)。\(f(x)\) 给定系数,\(f_i(x)\) 给定 \(m_i\) 个根。对每个 \(i\) 求算 \(f(x) \bmod f_i(x)\)。

\(1\le \sum_i m_i, n\le 10^5\)。

一个高等代数的做法是这样的:令 \(r_i(x) = f(x) \bmod f_i(x)\),那么其为满足 \(f(x) = q(x) f_i(x) + r(x)\) 的 \(r(x)\) 中最短者。而带入 \(f_i(x) = \prod_{j = 1}^{m_i} (x - x_j)\) 的 \(m_i\) 个根知道 \(r(x_j) = f(x_j)\)。则显然通过拉格朗日插值能确定这个最短多项式 \(r_i(x)\)。
那么对一般的情况,只需要对 \(f(x)\) 和这 \(\sum m_i\) 个根运行多点求值,再分别运行快速插值即可。总时间复杂度 \(O(n\log^2 n)\),常数*可能*不是很大。

另一个由古典多点求值算法导出的做法是这样的:注意到对 \(f(x), m_1(x), m_2(x)\),\(f(x)\bmod m_1(x) = \left(f(x) \bmod m_1(x)m_2(x)\right) \bmod m_1(x)\),那么先求出 \(f_i(x)\) 的多项式形式,把它们排成一排,按照度数之和每次从近似中点先合并,再分治取模即可。总时间复杂度也是 \(O(n\log^2 n)\),常数听说不小。

所以说上面那个做法其实没啥实际作用,而且限制挺大的,比如 \(f_i(x)\) 都要无重根。当然如果 \(f(x)\) 和需要的信息够特殊,比如能 \(O(n)\) 对 \(f(x)\) 做多点求值,并且不需要求最短多项式的系数而是远点求值,那总复杂度就可以优化到 \(O(n)\) 了。

根据 jjdw 的阐述,我们可以不直接用拉格朗日插值,而且甚至可以不需要无重根的性质。那么我们接下来不使用无重根性质,即 \(f_i(x) = \prod_{j = 1}^{m_i} (x - x_j)^{c_j}\)。如果我们能求算每个 \(f(x) \bmod (x - x_j)^{c_j}\),那么根据多项式 CRT,存在一种方法计算 \(f(x) \bmod \prod_{j = 1}^{m_i} (x - x_j)^{c_j}\)。那么这种方法是什么呢?

回忆一下多项式 CRT 的构造:取 \(f_i(x) = \prod_{j = 1}^{m_i} (x - x_j)^{c_j}, p_j(x) = (x - x_j)^{c_j}\),以及 \(f_i(x) / p_j(x)\) 在 \(\bmod p_j(x)\) 意义下的逆元 \(v_j(x) = \left[f_i(x) / p_j(x) \bmod p_j(x)\right]^{-1}\bmod p_j(x)\)。那么 \(r_i(x) = \sum_{j = 1}^{m_i} f(x_j) f_i(x) / (x - x_j) v_j(x)\)。那么要对每个 \(1\le j \le m_i\) 求算 \(v_j(x)\)。首先考虑求算 \(P_j(x) = f_i(x) / p_j(x) \bmod p_j(x)\),这个直接通过分治树即可得到。接下来考虑求逆。考虑代换 \(t = x - x_j\),容易发现这变换是保度数的,因此我们只需要先求 \(P_j(t + x_j)\) 在模 \(t^{c_j}\) 意义下的逆,然后代换回去即可。
上面的内容摘自 分式分解,给小朋友们做现场的表演

这个还是 \(O(n\log^2 n)\) 的,分治树那一部分的常数感觉和上面第二个做法没啥区别啊。

然而最重要的一点就是:给定根这个性质太少见了。所以到目前为止这个东西还停留在理性愉悦阶段。

标签:13,le,闲话,bmod,24.10,给定,多项式,求值,prod
From: https://www.cnblogs.com/joke3579/p/-/chitchat241013

相关文章

  • 2024-2025-1 20241327 《计算机基础与程序设计》第三周学习总结
    作业信息|2024-2025-1-计算机基础与程序设计)||--|-|2024-2025-1计算机基础与程序设计第二周作业)||快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题|作业正文|https://www.cnblogs.com/shr060414/p/18440575|教......
  • 学期2024-2025-1 学号20241317 《计算机基础与程序设计》第3周学习总结
    学期2024-2025-1学号20241317《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体......
  • 2024-2025-1 20241319 《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息安全作业正文https:......
  • 2024-2025-1 20241322 《计算机基础与程序设计》第3周学习总结
    2024-2025-120241322《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<数字分类与计数法......
  • 2024.10.13 1332版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • P4513 小白逛公园
    题意:区间求区间内的连续最大值和进行点修改。思考如何转移状态方程用lsum来表示该区间内从左边开始的最大值,rsum为区间内从右边开始的最大值。sum为区间的和,而ans为区间内的最大值,lsum可以由lc的lsum和lc.sum+rc.lsum得到,而rsum可以由rc.rsum和rc.sum+lc.rsum得到,而sum即为lc.s......
  • 2024-2025-1 学号:20241303 《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如[2024-2025-1计算机基础与程序设计第三周作业]这个作业的目标<写上具体方面>加入云班课,参考本周学习资源;自学教材;计算机科学概论(第七版)第2章,第3......
  • 9.13 补题记录
    https://codeforces.com/contest/1834/problem/D我想到的是我们的答案肯定是两个区间不重合的地方最大的然后这样想的话就要for两遍然后还想差分来着但是都挺麻烦的这个题解是真的太聪明了就是说我们的答案肯定是在一段的区间上的某部分(前面后面两头)那我们直接来看让这一......
  • 闲话 10.13
    有二阶线性递推数列\(x_{n+1}=px_n+qx_{n-1}\),考虑求出其通项公式。设有\(a,b\)使得\[x_{n+1}-ax_n=b(x_n-ax_{n-1})\]移项解得\(a+b=p,-ab=q\)。根据韦达定理\(a,b\)是\(x^2-px-q=0\)的两个根,可以交换\(a,b\),得\[x_{n+1}-bx_n=a(x_n-bx_{n-1})\]发现均为等比数列......
  • 2024-2025-1 学号20241315《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标加入云班课,参考本周学习资源。自学教材:计算机科......