[vijos1164] 曹冲养猪
来源:互联网 发布:k8陀螺仪软件调试 编辑:程序博客网 时间:2024/04/30 13:16
传送门
https://vijos.org/p/1164
题目大意
求解模方程组
题解
- 是中国剩余定理的裸体
- 但是我并不想用中国剩余定理,因为它只适用于模数互质
- ydcydc数学
- 参见里面的 将中国剩余定理丢进垃圾桶
ansmoda1=b1 ansmoda2=b2
a1⋅x+b1=a2⋅y+b2
用扩欧求解一个x,令b=x⋅a1+b1,a=lcm(a1,a2),则将方程合并为了
xmoda=b
代码
var d,e:array[0..20]of int64; i,j:longint; n:longint; a,b,c,x,y,t,v:int64;function gcd(a,b:int64):int64;begin if b=0 then gcd:=a else gcd:=gcd(b,a mod b);end;function lcm(a,b:int64):int64;begin lcm:=(a*b)div gcd(a,b);end;procedure exgcd(a,b:int64; var x,y:int64);var t:longint;begin if b=0 then begin x:=1; y:=0; end else begin exgcd(b,a mod b,x,y); t:=x; x:=y; y:=t-y*(a div b); end;end;begin readln(n); for i:=1 to n do readln(d[i],e[i]); for i:=1 to n-1 do {x*d[i]+e[i]=y*d[i+1]+e[i+1]} {x*d[i]+y*(-d[i+1])=e[i+1]-e[i]} begin a:=d[i]; b:=d[i+1]; c:=e[i+1]-e[i]; {a*x+b*y=c} t:=gcd(a,b); a:=a div t; b:=b div t; c:=c div t; exgcd(a,b,x,y); x:=x*c div t; v:=x*t div b; x:=x-v*b div t; if x<0 then x:=x+b div t; x:=(x+b)mod b; d[i+1]:=lcm(d[i],d[i+1]); e[i+1]:=x*d[i]+e[i]; end; writeln(e[n]);end.
0 0
- [vijos1164] 曹冲养猪
- 中国剩余定理 vijos1164 曹冲养猪
- vijosP1164 曹冲养猪
- 巴蜀1738 曹冲养猪
- 巴蜀 1738 曹冲养猪
- 洛谷 P1495 曹冲养猪
- 洛谷 P1495 曹冲养猪
- vijos P1164曹冲养猪
- 曹冲养猪 中国剩余定理
- vijos - P1164曹冲养猪(中国剩余定理 + python)
- Vijos 1164 曹冲养猪(中国剩余定理)
- Vijos 1164曹冲养猪(中国剩余定理)
- 冲
- Vijos1164(CRT)
- 养猪 dp
- 珍爱生命,拒绝养猪
- 阿蒙:不如回家养猪?
- 华为工作不如养猪
- HDU 5400 Arithmetic Sequence
- 关于空类大小问题的总结
- 关于常用字符编码的测试
- HTTP 错误 404.2 - Not Found
- 多线程实现对同一个或多个文件的读写操作
- [vijos1164] 曹冲养猪
- C/S 与 B/S 区别
- 怎样解决几何画板工具箱乱码
- struts1与struts2的区别
- Introduction to Java Programming编程题5.6<打印数字三角形>
- qt控件认知之布局控件
- 在需求分析中就可以避免的那些错误5
- Wiseteam图形工作站-流海洋与船舶CFD仿真解决方案
- SQLserver递归查询