POJ2891 - Strange Way to Express Integers(模线性方程组)
题目大意
求最小整数x,满足x≡a[i](mod m[i])(没有保证所有m[i]两两互质)
题解
中国剩余定理显然不行。。。。只能用方程组两两合并的方法求出最终的解,刘汝佳黑书P230有讲~~具体证明和实现我是参考此大神的
代码:
#include<iostream>
using namespace std;
#define MAXN 100000
typedef long long LL;
LL m[MAXN],a[MAXN];
void extended_gcd(LL a,LL b,LL &d,LL &x,LL &y)
{
if(!b)
{
d=a,x=1,y=0;
}
else
{
extended_gcd(b,a%b,d,y,x),y-=x*(a/b);
}
}
LL no_coprime(LL n)
{
LL mm,aa,x,y,c,d;
aa=a[0],mm=m[0];
for(int i=1; i<n; i++)
{
c=a[i]-aa;
extended_gcd(mm,m[i],d,x,y);
if(c%d!=0)
return -1;
m[i]/=d;
x=((x*c/d)%m[i]+m[i])%m[i];
aa=x*mm+aa;
mm=mm*m[i];
}
return aa;
}
int main(void)
{
LL n;
while(cin>>n)
{
for(int i=0; i<n; i++)
cin>>m[i]>>a[i];
cout<<no_coprime(n)<<endl;
}
return 0;
}
POJ2891 - Strange Way to Express Integers(模线性方程组)的更多相关文章
- POJ2891——Strange Way to Express Integers(模线性方程组)
Strange Way to Express Integers DescriptionElina is reading a book written by Rujia Liu, which intro ...
- POJ 2981 Strange Way to Express Integers 模线性方程组
http://poj.org/problem?id=2891 结果看了半天还是没懂那个模的含义...懂了我再补充... 其他的思路都在注释里 /********************* Templa ...
- 中国剩余定理+扩展中国剩余定理 讲解+例题(HDU1370 Biorhythms + POJ2891 Strange Way to Express Integers)
0.引子 每一个讲中国剩余定理的人,都会从孙子的一道例题讲起 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 1.中国剩余定理 引子里的例题实际上是求一个最小的x满足 关键是,其中 ...
- POJ2891 Strange Way to Express Integers
题意 Language:Default Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K Total S ...
- P4777 【模板】扩展中国剩余定理(EXCRT)/ poj2891 Strange Way to Express Integers
P4777 [模板]扩展中国剩余定理(EXCRT) excrt模板 我们知道,crt无法处理模数不两两互质的情况 然鹅excrt可以 设当前解到第 i 个方程 设$M=\prod_{j=1}^{i-1 ...
- POJ2891 Strange Way to Express Integers 扩展欧几里德 中国剩余定理
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ2891 题意概括 给出k个同余方程组:x mod ai = ri.求x的最小正值.如果不存在这样的x, ...
- [poj2891]Strange Way to Express Integers(扩展中国剩余定理)
题意:求解一般模线性同余方程组 解题关键:扩展中国剩余定理求解.两两求解. $\left\{ {\begin{array}{*{20}{l}}{x = {r_1}\,\bmod \,{m_1}}\\{ ...
- poj2891 Strange Way to Express Integers poj1006 Biorhythms 同余方程组
怎样求同余方程组?如: \[\begin{cases} x \equiv a_1 \pmod {m_1} \\ x \equiv a_2 \pmod {m_2} \\ \cdots \\ x \equ ...
- POJ2891 Strange Way to Express Integers [中国剩余定理]
不互质情况的模板题 注意多组数据不要一发现不合法就退出 #include <iostream> #include <cstdio> #include <cstring&g ...
随机推荐
- IOS中如何判断APP是否安装后首次运行或升级后首次运行
对于是否为首次安装的App可以使用如下方法来判断 [[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"] ...
- java Servlet导出数据到Excel文件
package com.lbc.excel.servlet; import java.io.IOException; import java.util.ArrayList; import java.u ...
- sbrk and coreleft
一.sbrk 函数来源:TC2.0.Linux 函数名: sbrk 功 能: 增加程序可用数据段空间,增加大小由参数 incr决定 . 返回值:函数调用成功返回一指针,指向新的内存空间.函数调用失败则 ...
- 简单方法打包.net程序集脱离framework
最近业余捣鼓monogame,自然而然就关注到了.net程序脱离framework发布的问题上了, 度娘,谷歌娘 都经过一番查找,无非分为如下几类方法: 1.直接使用mono运行时,附带 bin.li ...
- hdu 4800 Josephina and RPG
简单dp #include<cstdio> #define maxn 10005 #include<cstring> #include<algorithm> usi ...
- Datadog Agent是啥?它消耗什么资源?
在资本市场不那么喜人的 2015 年融资 9450 万美元的 Datadog,在运维圈刮起了一阵小旋风.作为国外很值得学习的一款平台监控产品,公司人数不足 100 的 Datadog 为什么吸引了投资 ...
- 【Xamarin挖墙脚系列:现有IPhone/IPad 设备尺寸】
原文:[Xamarin挖墙脚系列:现有IPhone/IPad 设备尺寸]
- Django中的Model继承
Django 中的 model 继承和 Python 中的类继承非常相似,只不过你要选择具体的实现方式:让父 model 拥有独立的数据库:还是让父 model 只包含基本的公共信息,而这些信息只能由 ...
- Django单元测试(一)
Django测试框架非常简单,首选方法是使用python标准库中的unittest模块. Writing tests Django的单元测试使用python的unittest模块,这个模块使用基于类的 ...
- Spring事务传播机制
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务 ...