POJ2891Strange Way to Express Integers
2024-08-28 02:24:27
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;
}
最新文章
- Hibernate的初步
- Sublime Text 介绍、用法、插件等
- linux 系统 tar 的用法详解
- 学习CentOS7笔记(一)
- scanf函数和printf函数
- 屌丝程序猿赚钱之道之taobao 2
- shell判断文件是否存在,不存在则创建
- [刷题]算法竞赛入门经典(第2版) 5-13/UVa822 - Queue and A
- 201521123103 《java学习笔记》 第十二周学习总结
- HDU--1540 Tunnel Warfare(线段树区间更新)
- /etc/fstab文件详解【转】
- python 类组合
- 使用CSDN-markdown编辑器
- reshape中的-1
- python2.7 跨文件全局变量的方法
- (数据科学学习手札38)ggplot2基本图形简述
- Calculation PartⅡ
- C++获取系统时间的方法
- ubuntu 环境变量设置
- 封闭类------新标准c++程序设计
热门文章
- [BUUCTF]REVERSE——rsa
- 4、BFS算法套路框架——Go语言版
- JAVA将Byte数组(byte[])转换成文件
- linux(centos)系统安装activemq
- IDEA通过git回滚到某个提交节点或某个版本
- 升级shiro1.6版本后导致附件上传失败,浏览器返回400错误
- 【LeetCode】754. Reach a Number 解题报告(Python & C++)
- 【LeetCode】551. Student Attendance Record I 解题报告(Java & Python)
- 【LeetCode】390. Elimination Game 解题报告(Python)
- 用户线程&;&;守护线程