sgu106 扩展欧几里得
来源:互联网 发布:数据取证 编辑:程序博客网 时间:2024/05/17 23:38
扩展欧几里得求不定方程的解
之后在解得范围内调整就好了唔
#include<iostream>#include<cstdio>using namespace std;long long a , b , c ;long long x1 , x2 , y1 , y2 ;long long cnt ;long long exgcd(long long a , long long b , long long &x , long long &y){if ( !b ){x = 1 ;y = 0 ;return a;}long long d = exgcd( b , a % b , x , y );long long temp = x;x = y ;y = temp - ( a / b ) * y ;return d ;}int main(){scanf("%lld%lld%lld%lld%lld%lld%lld", &a , &b , &c , &x1 , &x2 , &y1 , &y2);c *= -1;if ( a==0 && b==0 ){if ( !c ) {cnt = ( x2 - x1 + 1 ) * ( y2 - y1 + 1 );}}else if ( !a ){if ( c % b == 0 && c / b >= y1 && c / b <= y2 ){cnt = x2 - x1 + 1 ;}}else if ( !b ){if ( c % a == 0 && c / a >= x1 && c / a <= x2 ){cnt = y2 - y1 + 1;}}else {long long x = 0 , y = 0;long long d = exgcd( a , b , x , y );if ( c % d == 0 ){long long tx = x * (c / d) ;long long ty = y * (c / d);long long lx , ly ,rx , ry;if ( x1 <= tx || (x1 - tx) * d % b == 0 ) {lx = (x1 - tx) * d / b ;}else{lx = (x1 - tx) * d / b + 1;}if ( x2 >= tx || (tx - x2) * d % b == 0 ){rx = (x2 - tx) * d / b ;}else{rx = (x2 - tx) * d / b - 1;}if ( y1 <= ty || (y1 - ty) * d % a == 0 ){ly = (ty - y1) * d / a;}else{ly = (ty - y1) * d / a - 1;}if ( y2 >= ty || (ty - y2) * d % a == 0 ){ry = (ty - y2) * d / a ;}else {ry = (ty - y2) * d / a + 1;}if ( lx > rx ) swap( lx , rx );if ( ly > ry ) swap( ly , ry );if ( lx <= ry && ly <= rx ){long long maxans = max(lx , ly);long long minans = min(rx , ry);cnt = minans - maxans + 1;}}}cout << cnt << endl;}
0 0
- sgu106(扩展欧几里得)
- sgu106 扩展欧几里得
- sgu106 The Equation 扩展欧几里德
- SGU106
- sgu106
- sgu106
- SGU106 The equation[扩展欧几里德算法]
- 【欧几里得&扩展欧几里得】
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得&扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得和扩展欧几里得
- 欧几里得 与 扩展欧几里得
- 欧几里得 扩展欧几里得
- 欧几里得与扩展欧几里得
- 欧几里得 & 扩展欧几里得
- C++ 观察者模式
- 8 Path Parameters
- 反转链表
- hdu-oj 2074 叠筐
- jquery 使用手册
- sgu106 扩展欧几里得
- Codeforces 453B Little Pony and Harmony Chest 状压DP
- POJ2349&ZOJ1914--Arctic Network【最小生成树】
- poj 1422 hungary算法(伞兵降落)
- html标签中dl dd这个标签的作用
- 陀螺原则
- HDU-2096-分拆素数
- string 1
- 12.jQuery Ajax