题目描述

求关于x 的同余方程组

x%a1 = b1
x%a2 = b2
x%a3 = b3
x%a4 = b4
的大于等于0 的最小整数解。

输入输出格式

输入格式:

一行8 个整数,表示a1; b1; a2; b2; a3; b3; a4; b4。

输出格式:

一行一个整数,答案除以p 的余数。

输入输出样例

输入样例#1:

2 0 3 1 5 0 7 3
输出样例#1:

10

说明

对于30% 的数据,ai <=40, 保证ai 均为素数。

对于60% 的数据,1 <=ai <=10^3, 保证ai 均互素。

对于100% 的数据,0 <= bi < ai; 1 <=ai <= 10^3。

 /*
其实这是一个满分暴力(其实也不太算暴力,用的大数翻倍法)。 c%a1=b1 --> (c-b1)%a1=0
c%a2=b2 --> (c-b2)%a2=0
c%a3=b3 --> (c-b3)%a3=0
c%a4=b4 --> (c-b4)%a4=0
设c=b1,此时c满足c%a1=b1,让c累加a1,使c满足c%a2=b2,然后我们让c+=lcm(a1,a2),使c%a3=b3,此时c仍然满足c%a1=b1 && c%a2=b2
再让c+=lcm(a1,a2,a3),使c满足c%a4=b4,则此时c同时满足了四个条件。
为什么呢,因为c加的是倍数,所以mod一下相当于不变,这样c%那个a后还是那个b。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; long long ans;
int a[],b[];
int lcm1,lcm2; inline void read(int &num)
{
char c=getchar();
for(;!isdigit(c);c=getchar());
for(;isdigit(c);c=getchar()){num=num*+c-'';}
} int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
} inline void init()
{
for(int i=;i<=;i++)
read(a[i]),read(b[i]);
ans=b[];
lcm1=a[]*a[]/gcd(a[],a[]);
lcm2=lcm1*a[]/gcd(lcm1,a[]);
while(ans%a[]!=b[]) ans+=a[]; //找ans使ans满足c%a1=b1 && c%a2=b2
while(ans%a[]!=b[]) ans+=lcm1; //找ans使ans满足c%a1=b1 && c%a2=b2 && c%a3=b3
while(ans%a[]!=b[]) ans+=lcm2; //找ans使ans满足c%a1=b1 && c%a2=b2 && c%a3=b3 && c%a4=b4
printf("%lld",ans);
} int main()
{
//freopen("mod.in","r",stdin);
//freopen("mod.out","w",stdout);
init();
fclose(stdin);fclose(stdout);
return ;
}

2017.10.6 国庆清北 D6T2 同余方程组的更多相关文章

  1. 2017.10.1 国庆清北 D1T1 zhx的字符串题

    题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法 ...

  2. 2017.10.4 国庆清北 D4T2 正方形

    题目描述 在一个10000*10000的二维平面上,有n颗糖果. LYK喜欢吃糖果!并且它给自己立了规定,一定要吃其中的至少C颗糖果! 事与愿违,LYK只被允许圈出一个正方形,它只能吃在正方形里面的糖 ...

  3. 2017.10.6 国庆清北 D6T1 排序

    题目描述 小Z 有一个数字序列a1; a2; .... ; an,长度为n,小Z 只有一个操作:选 定p(1<p<n),然后把ap 从序列中拿出,然后再插⼊到序列中任意位置. 比如a 序列 ...

  4. 2017.10.3 国庆清北 D3T3 解迷游戏

    题目描述 LYK进了一家古董店,它很想买其中的一幅画.但它带的钱不够买这幅画. 幸运的是,老板正在研究一个问题,他表示如果LYK能帮他解出这个问题的话,就把这幅画送给它. 老板有一个n*m的矩阵,他想 ...

  5. 2017.10.3 国庆清北 D3T2 公交车

    题目描述 LYK在玩一个游戏. 有k群小怪兽想乘坐公交车.第i群小怪兽想从xi出发乘坐公交车到yi.但公交车的容量只有M,而且这辆公交车只会从1号点行驶到n号点. LYK想让小怪兽们尽可能的到达自己想 ...

  6. 2017.10.3 国庆清北 D3T1 括号序列

    题目描述 LYK有一个括号序列,但这个序列不一定合法. 一个合法的括号序列如下: ()是合法的括号序列. 若A是合法的括号序列,则(A)是合法的括号序列. 若A和B分别是合法的括号序列,则AB是合法的 ...

  7. 2017.10.4 国庆清北 D4T1 财富

    (其实这题是luogu P1901 发射站 原题,而且数据范围还比luogu小) 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是以身高为美的环境,因此在 ...

  8. 2017.10.7 国庆清北 D7T1 计数

    题目描述 给出m个数a[1],a[2],…,a[m] 求1~n中有多少数不是a[1],a[2],…,a[m]的倍数. 输入输出格式 输入格式: 输入文件名为count.in. 第一行,包含两个整数:n ...

  9. 2017.10.5 国庆清北 D5T1 拼不出的数

    题目描述 3 个元素的集合{5,1,2}的所有子集的和分别是0,1,2,3,5,6,7,8.发现最小的不能由该集合子集拼出的数字是4. 现在给你一个n个元素的集合,问你最小的不能由该集合子集拼出的数字 ...

随机推荐

  1. 手写RPC框架(netty+zookeeper)

    RPC是什么?远程过程调用,过程就是业务处理.计算任务,像调用本地方法一样调用远程的过程. RMI和RPC的区别是什么?RMI是远程方法调用,是oop领域中RPC的一种实现,我们熟悉的restfull ...

  2. SpringCloud整合过程中jar依赖踩坑经验

    今天在搭建SpringCloud Eureka过程中,一直在报pom依赖错误,排查问题总结如下经验. 1.SpringBoot整合SpringCloud两者版本是有严格约束的,详细见SpringBoo ...

  3. WebapiController的名字不能随便取名

    在做webapi时候,遇到一个很坑的问题,就是新增一个控制器时,当新增加的控制器名称叫:AccountController.cs 自己测试,通过postman 访问 都没有问题,但是前端调用会报错,说 ...

  4. docker 入坑3

    查看镜像 docker images [OPTIONS] [REPOSITORY[:TAG]] -a, --all=false -f, --filter=[] --no-trunc=false -q, ...

  5. 通俗易懂的join、left join、right join、full join、cross join

    内连接:列出与连接条件匹配的数据行(join\inner join) 外连接:两表合并,如有不相同的列,另外一个表显示null(left join\right join\full outer join ...

  6. Part_three:Redis持久化存储

    redis持久化存储 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. 1.RD ...

  7. django--模型字段引用

    如果内置字段不起作用,您可以尝试使用django-localflavor(文档),其中包含对特定国家和文化有用的各种代码片段. 此外,您可以轻松编写自己的自定义模型字段. 注意 从技术上讲,这些模型是 ...

  8. The Essential Burp Suite

    OK   we have download teh burp suite .let's begin start the tool 1.if  we  want to use the total mem ...

  9. 解决 SSH Connection closed by foreign host 问题

    Xshell 报错 : 1.有可能是IP和别人冲突,改一下IP就好了 2.也有可能是文件权限的问题.改一下: cd /etc/ssh/ chmod ssh_host_* chmod *.pub 3.也 ...

  10. 用java刷剑指offer(数字在排序数组中出现的次数)

    题目描述 统计一个数字在排序数组中出现的次数. 牛客网链接 java代码 //看见有序就用二分法 public class Solution { public int GetNumberOfK(int ...