不建议ans=(ans%M+M)%M;

P4774 [NOI2018] 屠龙勇士

Orz好多模板都加这句 也不知道啥原理
by AnoonA @ 2019-11-05 23:34:41


对算法理解深刻了就不会出这种问题
by 小粉兔 @ 2019-11-06 01:25:45


还好从来没有这种习惯
by AlgoEmperor @ 2019-11-06 07:21:43


然而加这个并没有什么问题, 因为求出的ans实际上是个膜$M$意义下的等价类(吧) 比如下面这份代码就能AC。 ($X$对应$ans$, $P$对应$M$) ```cpp for(int i=2; i<=n; ++i) { // xP + yp[i] == a[i]-x long long c = ((a[i]-X)%p[i] + p[i])%p[i]; long long x,y,d; exgcd(P, p[i], x, y, d); if(c%d) {fil(); return;} x = slow_mul(x, c/d, p[i]/d); X += x*P; P = P/d*p[i]; X = (X%P + P)%P; } ```
by xwmwr @ 2020-04-17 10:14:18


https://www.luogu.com.cn/record/32862091
by xwmwr @ 2020-04-17 10:15:13


@[qsmoonzh](/user/96546)
by xwmwr @ 2020-04-19 11:25:28


蒟蒻求教,这不是因为这道题未必是最小非负整数解吗?
by Wecho @ 2022-04-06 15:26:19


|