poj-2891(Strange Way to Express Integers)--中国剩余定理扩展欧几里得
题意:找到一个m,使得m%ai=ri,并且这个m最小
m = a1*x + r1;
m = a2*y + r2;
可得:a1*x - a2*y = r2 - r1
可得:a1*x ≡ r2-r1(moda2);
r = gcd(a1,a2);
求一次同余线性方程---判定条件 (r2-r1)% r==0
解得 x ≡ ((r2-r1)/r)*x%(a2/r)+a2/r)%(a2/r);
r1 = a1 * x + r1;
a1 = a1 * a2 / r;再与下一个等式求解
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef __int64 LL;
LL x,y;
LL ecgcd(LL a,LL b)
{if(b == 0) {x = 1,y = 0;return a;}int k = ecgcd(b,a%b);LL t = x;x = y;y = t - a/b*y;return k;
}
int main()
{LL n,a1,a2,r1,r2;while(~scanf("%I64d",&n)){scanf("%I64d%I64d",&a1,&r1);bool flag = false;for(LL i = 2;i <= n;i++){scanf("%I64d%I64d",&a2,&r2);if(flag) continue;LL r = ecgcd(a1,a2);LL R = r2 - r1;if(R%r) {flag = true;continue;}//求解一次同余式的判定LL mod = a2/r;x = (R/r*x%mod+mod) % mod;//解得a1*x = R (mod a2);的一个特解 即最小值r1 = x*a1 + r1;a1 = a1*a2/r;}if(flag) printf("-1\n");else printf("%I64d\n",r1);}
}
若还是不明白:点这里 http://hi.baidu.com/buaa_babt/item/5f4c013772c7cbe3e6bb7a2d
poj-2891(Strange Way to Express Integers)--中国剩余定理扩展欧几里得相关推荐
- 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)
虽然作业还没有做完,但是我还是放不下它,对此,我只想说: 今天你对作业爱理不理,明天它就让你补到飞起 DP先放放,我们要雨露均沾 练习上手:乘法逆元 题目 题解 代码实现 曹冲养猪?(互质的中国剩余定 ...
- poj 2891 Strange Way to Express Integers
题目:http://poj.org/problem?id=2891 思路:扩展欧几里得 #include <cstdio> #include <cstring> #includ ...
- POJ 2891 Strange Way to Express Integers ★ (扩展欧几里德解同余式组)
题目链接:http://poj.org/problem?id=2891 题目大意: 很好的一道题,解同余式组: x = r1 (mod m1) x = r2 (mod m2) -- x = rp (m ...
- [POJ 2891] Strange Way to Express Integers
Description 给定 k 个同余方程组,求出满足条件的最小正整数 x,或者无解输出 -1. Solution 注意到模数不一定互质,所以中国剩余定理不能用 嗯有请扩展中国剩余定理 定理证明就不 ...
- poj 2891 Strange Way to Express Integers 2012-09-05
http://poj.org/problem?id=2891 解线性模方程组. 比较坑爹,数据比较大,很容易溢出. 1 Program poj2891; 2 3 var m:int64; 4 5 a, ...
- BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)...
数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...
- Strange Optimization(扩展欧几里得)
Strange Optimization Accepted : 67 Submit : 289 Time Limit : 1000 MS Memory Limit : 65536 KB Str ...
- 数学--数论--中国剩余定理+扩展中国剩余定理(孙子定理)
中国剩余定理 问题 求解同余方程组 其中m1,m2,m3...mkm_1,m_2,m_3...m_km1,m2,m3...mk为两两互质的整数 求x的最小非负整数解 定理 令M=∏i=1kmi ...
- 模线性方程(中国剩余定理+扩展中国剩余定理)
已知一系列除数和模数,求最小的满足条件的数 我们先考虑一般的情况,即模数不互质.(扩展中国剩余定理) 我们考虑两个方程的情况 x%M=R x=k1∗M+Rx=k1 * M+Rx=k1∗M+R x%m= ...
最新文章
- geopy 在python中的使用
- 21-break、continue、return语句理解
- 多种方法解决Exchange 2010 EMC批量启用邮箱之后出..
- 打造个性化的Internet Explorer
- (网页)js每隔5分钟执行一次ajax请求的实现方法(转)
- Error loading native library: libnjni9.so.的解决办法
- 【Python配置】Win10配置Python3、Numpy、PyCharm、Anaconda
- 图论复习(各类习题)
- Ubuntu 安装 中文输入法(Google 拼音)
- 命名实体识别数据集构建
- Centos7安装Mysql、九条命令搞定
- PHP源码 京东联盟API接口,转链+cha询订单,cha询推广位
- excel中roundup使用指南
- 基于opencv的身份证识别(KNN与OCR两种算法)
- 第一个帖子,先灌灌水
- python脚本windows环境下权限问题处理
- 史上最大规模世界杯直播 阿里云承包了全网70%的流量
- Torch的参数初始化
- 怎么样去提升网站长尾词在百度搜狗360的排名?
- 不可错过的UI 设计配色技巧