博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 787A The Monster( 拓展欧几里德 )
阅读量:6874 次
发布时间:2019-06-26

本文共 1154 字,大约阅读时间需要 3 分钟。


链接:

题意:ok 题意略o_%e7%81%ab%e7%8b%90%e6%88%aa%e5%9b%be_2017-05-25T02-56-00.049Z.png

思路:将问题转化成求 b + a * x = d + c * y,简单拓欧,但是需要注意的是 x >= 0 且 y >= 0


/*************************************************************************    > File Name: codeforces787A.cpp    > Author:    WArobot     > Blog:      http://www.cnblogs.com/WArobot/     > Created Time: 2017年05月25日 星期四 09时38分50秒 ************************************************************************/#include
using namespace std;int exgcd(int a,int b,int &x,int &y){ if( b == 0 ){ x = 1; y = 0; return a; } int d = exgcd( b , a%b , x , y ); int tmp = x; x = y; y = tmp - a/b*y; return d;}int main(){ int A, B, C, D; while(~scanf("%d%d%d%d",&A,&B,&C,&D)){ int x , y; int d = exgcd( A , C , x , y ); int c = D - B; if( c % d != 0 ) printf("-1\n"); else{ x = x*(c/d); x = (x%(C/d) + (C/d))%(C/d); y = (A*x + B - D)/C; while( y < 0 ){ // 同时保证x > 0 , y > 0 x = x + C/d; y = (A*x + B - D)/C; } printf("%d\n",B + A*x); } } return 0;}

转载于:https://www.cnblogs.com/WArobot/p/6902563.html

你可能感兴趣的文章
C#--笔记
查看>>
[题集]一些有趣的问题
查看>>
[HNOI2010]城市建设
查看>>
系统设计 样题
查看>>
Paint House II
查看>>
[转]进程与线程的一个简单解释
查看>>
测试评审清单
查看>>
算法笔记--匈牙利算法
查看>>
字节流数据的写出(输出)和读取(输入)
查看>>
9月28日学习内容整理:多进程,并发,子进程的创建(multiprocessing模块)
查看>>
3月8日学习内容整理:restframework的视图组件
查看>>
《结对-贪吃蛇游戏-开发环境搭建过程》
查看>>
OO第四阶段总结
查看>>
c#装箱与拆箱
查看>>
列式数据库~clickhouse日常管理
查看>>
Android richtext
查看>>
javascript总结02
查看>>
创建windows服务
查看>>
AutoMapper用法
查看>>
.net日志的用法
查看>>