求助 有关uniquea uniquees这个mod

a uniquee就是让连续的相同值变成一个

STLΦUnique函数的作用是去除相邻重复元素

对于不相邻的元素如果重复了是不会去除的

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。伱的手机镜头里或许有别人想知道的答案

设g为p的一原根记k關于g的离散对数(mod p)为indgk,则有


那么t1即与情形2一致可由BSGS算法求出t1
其中只有t2是未知的 可由扩展欧几里德求出所有t2的值。
与情形1一致可由快速幂求出所有x值。
至此解决p为素数时的问题

这种情况有点复杂,不过大体可分三部分解决问题建立在前面的基础之上,就容易理解一些


那么我们对每一个i属于[1,?,k],都有
我们可利用上面的知识去解出这里的x不过由于模数不一定为素数的原因, 不能单纯地使用上面p为素數的方法去解关于这个式子的解法是解决整个问题的关键,下面会给出细节此处暂且认为已经解出x的一组解{xi1,xi2,?,xiti}
那么上面k个式子就会囿k组这样的解 我们从每组里取一个x值出来,记为{X1,X2,?,Xk}那么如果我们能找到一个Z满足

?????????????


那么Z必为原式的一个解。
而要解这个只需使用CRT即可, 同时我们需要一个dfs来枚举所有X可能的组合。

下面来看如何解决xab(modpeii)的解的问题

首先,我们回想上面p为素数的凊况在整个操作中我们用到了p的原根g,和bx关于g的离散对数(mod p)
换句话数,如果p具有原根g且b和x有关于g的离散对数(mod p)。那么p是不是素数就都能用上面的方法去做了
这也是我们要分三种情况去讨论的依据。

首先来看第一种情况, pi没有原根的情况
e为正整数。那么只有pi=2的时候peii才沒有原根,所以当pi=2的时候 我们不能像上面那样处理。
?一个有效的方法是直接枚举[0,?,peii]之间的x, 将满足上式的x存入结果中即可

第二种凊况,b没有关于g的离散对数(mod p)
?容易理解,只有0没有关于g的离散对数那么如果b0(modpeii),则b无离散对数不能用上面的方法处理。
?这个时候 我们肯定可以找一到一个最小的t,满足

除了上面两种以外,剩下的就可以按照p为素数时的方式处理了

我要回帖

更多关于 a unique 的文章

 

随机推荐