首页 > 其他分享 >【题解】CF gym 104337 G. Guess the Polynomial

【题解】CF gym 104337 G. Guess the Polynomial

时间:2023-07-12 19:46:51浏览次数:46  
标签:Guess end 题解 gym bmatrix alpha 2n omega sum

statement:https://codeforces.com/gym/104337/problem/G

即求 \(f(x)=\sum\limits_{i=0}^{p-2}a_ix^i\),其中只有不超过 \(n\) 个 \(a_i\) 非 \(0\) 。

记:

\[\begin{aligned} A_{n}^{k}&=\sum_{i\equiv k\pmod{n}}a_i=\frac{1}{n}\sum_{i=0}^{n-1}f(\omega_{n}^{i})\omega_{n}^{-ik}\\ B_{n}^{k}&=A_{2n}^{k}-A_{2n}^{k+n}=\frac{1}{n}\sum_{i=0}^{n-1}f(\omega_{n}^{i}\omega_{2n})\omega_{n}^{-ik}\omega_{2n}^{-k} \end{aligned} \]

假设我们对 \(0\leq k<n\) 都知道 \(A_{n}^{k}\) 。因为 \(A_{2n}^k=\frac{1}{2}(A_n^k+B_n^k),A_{2n}^{k+n}=\frac{1}{2}(A_n^k-B_n^k)\),所以只要求所有 \(B_{n,k}\) 就可以了。将 \(B_{n}^{k}\) 的表达式拆解,应用单位根反演可以得到:

\[\begin{bmatrix} B_{n}^{0}\omega_{2n}^{0}\\ B_{n}^{1}\omega_{2n}^{1}\\ \vdots\\ B_{n}^{n-1}\omega_{2n}^{n-1} \end{bmatrix} \cdot (\omega_{n}^{ij})_{i,j} = \begin{bmatrix} f(\omega_{n}^{0}\omega_{2n})\\ f(\omega_{n}^{1}\omega_{2n})\\ \vdots\\ f(\omega_{n}^{n-1}\omega_{2n}) \end{bmatrix} \]

但是有用的值其实不多:注意到 \(a_i\leq 10^5\),因此任意集合 \(S\subseteq[0,p-2]\) 满足,若 \(\sum\limits_{i\in S}a_i=0\) 则每个 \(a_i,i\in S\) 都是 \(0\) 。于是若 \(A_{n}^k=0\) 则 \(B_{n}^k\) 必然为 \(0\) 。考虑非零位 \(\{k_0,k_1,\cdots,k_{m-1}\}\),令 \(\alpha_{i}=\omega_{n}^{k_i},b_i=B_n^{k_i}\omega_{2n}^{k_i}\),有:

\[\begin{bmatrix} b_0\\b_1\\\vdots\\b_{m-1} \end{bmatrix} \cdot (\alpha_{i}^{j})_{i,j} = \begin{bmatrix} f(\omega_{n}^{0}\omega_{2n})\\ f(\omega_{n}^{1}\omega_{2n})\\ \vdots\\ f(\omega_{n}^{m-1}\omega_{2n}) \end{bmatrix} \]

因为只需要解方程,所以其实只要 \(m\times m\) 就够了。现在我们需要观察 \(m\) 阶方阵 \((\alpha_{i}^{j})_{i,j}\) 的性质。

令 \(M=(\alpha_{j}^{i})_{i,j}\) 为上述矩阵的转置,是范德蒙德矩阵。作用 \(aM=b\) 的意义是多点求值,反过来其逆矩阵可以写成拉格朗日插值:\((M^{-1})_{i,j}=[x^j]\prod\limits_{k\not=i}\frac{x-\alpha_{k}}{\alpha_i-\alpha_k}\) 。

此时:

\[\begin{aligned} b_i&=\sum_{j=0}^{m-1}f(\omega_{n}^{j}\omega_{2n})(M^{-1})_{j,i}\\ &=\sum_{j=0}^{m-1}f(\omega_{n}^{j}\omega_{2n})[x^j]\prod\limits_{k\not=i}\frac{x-\alpha_{k}}{\alpha_i-\alpha_k}\\ \end{aligned} \]

那么只要求出 \(0\leq j< m\) 的 \(f(\omega_{n}^{j}\omega_{2n})\) 即可。而 \(A_{n}^{k}\) 的非零个数至多 \(10^3\) 个。考虑倍增到 \(p_i\) 上界,询问次数大概是 \(\sum\limits_{i=1}^{23}\min(10^3,2^{i-1})\),是满足要求的。

我们通过设计倍增很好地解决了这个问题。其关键在于,得设计使得每轮倍增需要处理的量级,和非零总数相关。以此先设计 \(A\),为了 \(A_n\rightarrow A_{2n}\) 设计出 \(B_n\),联系值域找到 \(B\) 的性质,得到求解方法。

标签:Guess,end,题解,gym,bmatrix,alpha,2n,omega,sum
From: https://www.cnblogs.com/qiulyqwq/p/17548625.html

相关文章

  • CF1450C2 题解
    题目传送门再不写题解社贡要掉到\(0\)了。题目分析显然如果\(3\)个格子构成了满足获胜条件的情况,这\(3\)个格子模\(3\)的余数各不相同。那么我们将格子按模\(3\)的余数分为\(3\)类,只要保证相邻\(3\)个格子中有\(2\)个不同就行了,不需要动第\(3\)个。我们令......
  • Facetook Priority Wall 题解
    题目传送门一道模拟题。用一个map存储每个人的优先级因子,然后存进vector里进行排序。难点在于分辨\(X\)和\(Y\)与当前是什么操作。不过需要注意,只要出现了名字就需要输出,且我们认为与你没关系的人不加分。Code#include<bits/stdc++.h>#definelllonglong#define......
  • centos7ping不通主机却能够上网时的问题解决方案
       ......
  • Codeforeces #1844 A~D题解
    Codeforeces#1844A~D题解ASubtractionGame博弈论A+Bproblem由于只有两种数字可选,若石子数量为a+b,先手选完之后必然为a或b,因此后手可以直接选完BPermutations&Primes构造构造方法:35791108642,这样把1放中间可以让最多的区间拿到1,接下来避免同时拿......
  • CodeForces Gym 102900B Mine Sweeper II
    CF传送门感觉像脑筋急转弯。考虑所有数字之和就是相邻的\((\text{雷},\text{空地})\)对数,因此翻转后这个对数不会改变。然后由于抽屉原理,\(b\toa\)和\(b\to\operatorname{inv}(a)\)中至少有一个操作次数\(\le\left\lfloor\frac{nm}{2}\right\rfloor\),然后就做完了......
  • 「Network」题解
    「CEOI2012」NetworkSolutiontoQuestionⅠ首先缩点(当然也可以不缩?),然后跑一遍DFS即可。//w为联通分量里的节点个数inlinevoiddfs(constint&u){ ans1[u]=w[u]; for(intv:G_scc[u]) dfs(v),ans1[u]+=ans1[v];}SolutiontoQuestionⅡ观察缩完点后......
  • 正方形鱼池题解
    首先这道题\(T\)的范围很小,而\(N\)的范围却很大,所以我们只能枚举树那么我们如何枚举呢,树有上下左右之分,看起来十分难枚举,现在让我们仔细分析一下:水池的边长就等于\(min(上下界的距离,左右界的距离)\)这时我们就可以开始枚举了,我枚举的是左右界那么我们此时就可以发现上下界的两......
  • 题解 [NOIP2011 提高组] 聪明的质监员
    题目链接不难发现,\(W\)越大,\(y_i\)以及\(y\)就越小,\(W\)越小,\(y_i,y\)就越大。所以这是一个二分答案。考虑如何\(check\)。观察\[y_i=\sum\limits_{j=l_i}^{r_i}[w_j\geW]\times\sum\limits_{j=l_i}^{r_i}[w_j\geW]v_j\]不难发现,乘号的前后都是区间和的形式,有......
  • 【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN 无法打开相机 设置我的PIN 登
    \(弄了1.5个小时,找到这个视频,终于弄好了!!!!!!\)\(如果各位基友出现这种问题,可以参考。\)【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN无法打开相机设置我的PIN登录选项诊断启动禁用服务后问题解决......
  • 洛谷 P4869 albus就是要第一个出场 题解
    洛谷P4869albus就是要第一个出场题意给定一个长度为\(n\)的序列\(A\),设可重集合\(S=\left\{\operatorname{xor}_{i=1}^nA_ix_i\midx_i\in\{0,1\}\right\}\),即\(S\)为\(A\)的所有子集的异或和构成的集合。给定一个数\(k\),求\(k\)在\(S\)中的排名。如果\(S\)中......