pku1061(扩展欧几里德算法,中国剩余定理,模线性方程)
2010-07-22 14:54
302 查看
http://162.105.81.212/JudgeOnline/problem?id=1061
公式:(ans*m - x) = (ans*n - y) mod L => (n-m)*ans = (x - y) mod L,(ans表示跳跃的次数);直接代入模板就行啦。
详细介绍:http://hi.baidu.com/%B1%BF%D0%A1%BA%A2_shw/blog/item/0676025d56a87d4afbf2c093.html
公式:(ans*m - x) = (ans*n - y) mod L => (n-m)*ans = (x - y) mod L,(ans表示跳跃的次数);直接代入模板就行啦。
详细介绍:http://hi.baidu.com/%B1%BF%D0%A1%BA%A2_shw/blog/item/0676025d56a87d4afbf2c093.html
#include < iostream > using namespace std; __int64 result; __int64 gcd( __int64 a, __int64 b, __int64 & x, __int64 & y ) { __int64 t,ret; if ( ! b ) { x = 1 ,y = 0 ; return a; } ret = gcd( b, a % b, x, y ); t = x, x = y, y = t - a / b * y; return ret; } bool f( __int64 a, __int64 b, __int64 n ) { __int64 d, e, x, y, i; d = gcd( a, n, x, y ); if ( b % d != 0 ) return false ; result = ( x * (b / d ) % n + n ) % n; return true ; } int main() { __int64 x, y,m,n,l; while (scanf( "%I64d%I64d%I64d%I64d%I64d",&x, & y, & m, & n, & l) != EOF ) { if ( f( n - m, x - y, l ) ) printf( "%I64d/n" , result ); else printf( "Impossible/n" ); } return 0 ; }
相关文章推荐
- POJ 2891 Strange Way to Express Integers 【中国剩余定理线性模方程合并(模板)】
- 【数论】【中国剩余定理】解线性模方程
- 中国剩余定理和一元同余线性方程的详细讲解
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- pku 1061 青蛙的约会(解模线性方程)
- HDU 3579 Hello Kiki 中国剩余定理(合并方程
- 【jzoj3214】【SDOI2013】【方程】【中国剩余定理】【组合数取模】
- 【BZOJ2142】礼物(扩展lucas定理,中国剩余定理合并方程)
- PKU 1006 Biorhythms (中国剩余定理 * *)
- [转]使用中国剩余定理中处理某些方程模数不互质的方法
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
- HDU 3579 Hello Kiki 中国剩余定理(合并方程
- pku 1006 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- poj 2891 Strange Way to Express Integers——使用中国剩余定理中处理某些方程模数不互质的方法
- [BZOJ 3129] [Sdoi2013] 方程 【容斥+组合数取模+中国剩余定理】
- PKU 2891:Strange Way to Express Integers(中国剩余定理非互质)
- 【转】扩展欧几里德算法 线性同余方程 中国剩余定理