Schwartz–zippel定理
Schwartz–Zippel定理
定理:在有限域F上给定一个总度数(total degree)为k的n元多项式P,且多项式非0,对于F的某个子集S,我们从中均匀随机挑选n个数值x1,…,xn,那么有:
Pr[P(x1,…,xn)=0]≤k|S|判断多项式是否相同
题目1:给定m个n元多项式P1,…,Pn,其中每个多项式的总度数均为1。接下来要求回答q个请求,每个请求给定(l,a,x),要求回答Pl×Pl+1×…×Pl+x−1是否与Pa×Pa+1×…×Pa+x−1是否相等。所有的计算都在模109+7的意义下计算。其中1≤n,m,q≤105,且每个多项式Pi最多只有10个变量的系数非0。
我们可以直接用Schwartz–Zippel定理来判断。为每个变量提前选定值,这样每个多项式都对应一个整数。我们只需要用线段树计算区间中所有整数的乘积即可。
为了保证概率足够大,我们可以判定两次,两次都通过才算相同。