题目描述

求关于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. git比较本地仓库和远程仓库的差异(转)

    转自:https://www.jianshu.com/p/6078a49900a4

  2. 访问Harbor报502 Bad Gateway

    Harbor启动都是多个容器的,首先查看一下是否有相关容器未启动 docker ps | grep harbor cae340214e57 goharbor/nginx-photon:v1.9.3 & ...

  3. 深度优先搜索(DFS)思路及算法分析

    1.算法用途: 用于遍历图中的节点,有些类似于树的深度优先遍历.这里唯一的问题是,与树不同,图形可能包含循环,因此我们可能会再次来到同一节点. 2.主要思想: 借用一个邻接表和布尔类型数组(判断一个点 ...

  4. openssl jia adress

    ???????????????????????????????????????????openssl证IP 首先创建openssl.cnf, 内容如下. 其中organizationalUnitNam ...

  5. 如何在Unity中创造真实的水

    你将要创造什么 Unity是由Unity Technologies开发的多平台游戏引擎,用于为控制台,移动设备,计算机甚至网站等多种设备创建视频游戏和应用程序.Unity的核心优势在于其稳健性,可移植 ...

  6. python超链接抓取工具

    python实现自动抓取某站点内所有超链接 (仅供学习使用) 代码部分 #!/usr/bin/python import requests import time import re import s ...

  7. django AJAX 的应用

    目录 AJAX 的使用 AJAX简介 AJAX常见应用情景 AJAX的优缺点 jQuery实现的AJAX JS实现AJAX AJAX请求如何设置csrf_token Form表单上传文件 AJAX上传 ...

  8. Linux(常用)命令

    目录 Linux(常用)命令 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" 设置权限, ...

  9. Java 之 web 相关概念

    一.软件架构 1.C/S:客户端/服务器端 2.B/S:浏览器/服务器端(目前常用) 二.网络资源 1.静态资源 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源,静态资源可以直接被浏览器 ...

  10. JavaScript箭头函数中的this详解

    前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...