zoukankan      html  css  js  c++  java
  • 洛谷 P1495 曹冲养猪

    P1495 曹冲养猪

    题目描述

    自从曹冲搞定了大象以后,曹操就开始捉摸让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲满不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把。举个例子,假如有16头母猪,如果建了3个猪圈,剩下1头猪就没有地方安家了。如果建造了5个猪圈,但是仍然有1头猪没有地方去,然后如果建造了7个猪圈,还有2头没有地方去。你作为曹总的私人秘书理所当然要将准确的猪数报给曹总,你该怎么办?

    输入输出格式

    输入格式:

     

    第一行包含一个整数n (n <= 10) – 建立猪圈的次数,解下来n行,每行两个整数ai, bi( bi <= ai <= 1000), 表示建立了ai个猪圈,有bi头猪没有去处。你可以假定ai,aj互质.

     

    输出格式:

     

    输出包含一个正整数,即为曹冲至少养母猪的数目。

     

    输入输出样例

    输入样例#1: 复制
    3
    3 1
    5 1
    7 2
    输出样例#1: 复制
    16
    思路:中国剩余定理的板子。
    这是大数翻倍法。
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n;
    int a[11],b[11];
    long long gcd(long long x,long long y){
        return x==0?y:gcd(y%x,x);
    }
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d%d",&a[i],&b[i]);
        long long ans=b[1],lcm=a[1];
        for(int i=2;i<=n;i++){
            while(ans%a[i]!=b[i])    ans+=lcm;
            long long GCD=gcd(lcm,(long long)a[i]);
            lcm=lcm/GCD*(long long)a[i];
        }
        cout<<ans;
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    CentOS7 linux下yum安装redis以及使用
    nssm 在windows上部署服务
    netcore 2.2 封装 AutoMapper
    git pull/push免密输入
    缓存常见问题
    批量维护关系数据
    测试跨域html
    ODBC配置
    spring boot监控之prometheus配置
    REST Client
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8045022.html
Copyright © 2011-2022 走看看