http://poj.org/problem?id=2891

实际上就是一个一元线性同余方程组。按照合并的方式来解即可。

有一个注意点,调用函数是会慢的。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
ll t,a1,b1,a2,b2,x_0,y_0;
ll ex_gcd(ll a,ll b,ll &x,ll &y)
{
if(!b){x=1,y=0;return a;}
ll d=ex_gcd(b,a%b,x,y);
ll tmp=x;
x=y,y=tmp-a/b*y;
return d;
}
int main()
{
while(~scanf("%lld",&t))
{
bool ck=1;
scanf("%lld%lld",&a1,&b1);
t--;
while(t--)
{
scanf("%lld%lld",&a2,&b2);
ll a=a1,b=a2,c=b2-b1;
ll d=ex_gcd(a,b,x_0,y_0);
if(c%d) ck=0;
ll t=b/d;
x_0=(x_0*(c/d)%t+t)%t;
b1=a1*x_0+b1;
a1=a1*(a2/d);
}
if(!ck) printf("-1\n");
else printf("%lld\n",b1);
}
return 0;
}

最新文章

  1. Hibernate的初步
  2. Sublime Text 介绍、用法、插件等
  3. linux 系统 tar 的用法详解
  4. 学习CentOS7笔记(一)
  5. scanf函数和printf函数
  6. 屌丝程序猿赚钱之道之taobao 2
  7. shell判断文件是否存在,不存在则创建
  8. [刷题]算法竞赛入门经典(第2版) 5-13/UVa822 - Queue and A
  9. 201521123103 《java学习笔记》 第十二周学习总结
  10. HDU--1540 Tunnel Warfare(线段树区间更新)
  11. /etc/fstab文件详解【转】
  12. python 类组合
  13. 使用CSDN-markdown编辑器
  14. reshape中的-1
  15. python2.7 跨文件全局变量的方法
  16. (数据科学学习手札38)ggplot2基本图形简述
  17. Calculation PartⅡ
  18. C++获取系统时间的方法
  19. ubuntu 环境变量设置
  20. 封闭类------新标准c++程序设计

热门文章

  1. [BUUCTF]REVERSE——rsa
  2. 4、BFS算法套路框架——Go语言版
  3. JAVA将Byte数组(byte[])转换成文件
  4. linux(centos)系统安装activemq
  5. IDEA通过git回滚到某个提交节点或某个版本
  6. 升级shiro1.6版本后导致附件上传失败,浏览器返回400错误
  7. 【LeetCode】754. Reach a Number 解题报告(Python & C++)
  8. 【LeetCode】551. Student Attendance Record I 解题报告(Java & Python)
  9. 【LeetCode】390. Elimination Game 解题报告(Python)
  10. 用户线程&amp;&amp;守护线程