曹冲养猪

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

【题解】

很裸的中国剩余定理,不能再裸了。。。(注意用long long)

 1 /*************
 2   Vijos 1164
 3   by chty
 4   2016.11.1
 5 *************/
 6 #include<iostream>
 7 #include<cstdio>
 8 #include<cstring>
 9 #include<cstdlib>
10 #include<ctime>
11 #include<cmath>
12 #include<algorithm>
13 using namespace std;
14 typedef long long ll;
15 ll n,ans,M(1),a[15],m[15];
16 inline ll read()
17 {
18     ll x=0,f=1;  char ch=getchar();
19     while(!isdigit(ch))  {if(ch==‘-‘)  f=-1;  ch=getchar();}
20     while(isdigit(ch))  {x=x*10+ch-‘0‘;  ch=getchar();}
21     return x*f;
22 }
23 void exgcd(ll a,ll b,ll &x,ll &y)
24 {
25     if(b==0) {x=1; y=0; return;}
26     exgcd(b,a%b,x,y);
27     ll t=x;x=y;y=t-a/b*y;
28 }
29 int main()
30 {
31     //freopen("cin.in","r",stdin);
32     //freopen("cout.out","w",stdout);
33     n=read();
34     for(ll i=1;i<=n;i++)  m[i]=read(),a[i]=read(),M*=m[i];
35     for(ll i=1;i<=n;i++)
36     {
37         ll x,y,Mi=M/m[i];
38         exgcd(Mi,m[i],x,y);
39         ans=(ans+Mi*x*a[i])%M;
40     }
41     if(ans<0)  ans+=M;
42     printf("%I64d\n",ans);
43     return 0;
44 }
时间: 2024-11-03 05:21:03

曹冲养猪的相关文章

Vijos 1164 曹冲养猪(中国剩余定理)

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

洛谷 P1495 曹冲养猪

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

一本通1634【例 4】曹冲养猪

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

【洛谷P1495】 曹冲养猪

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

vijos 1164 曹冲养猪

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

巴蜀1738 曹冲养猪

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

【Vijos】【1164】曹冲养猪

中国剩余定理 没啥重要的……模板题,中国剩余定理就是解出模线性方程组的一个可行解(好像也是唯一解?) 这是一种神奇的构造方法……明白了为什么这样构造是对的就行了=.=至于怎么想到这种构造方法的……去问孙子去→_→ 1 //Vijos 1164 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<iostream> 6 #include<algorithm> 7

vijosP1164 曹冲养猪

链接:https://vijos.org/p/1164 [思路] 数学. 如果x不能满足模公式则+gcd,gcd=a的积(a互质)使加上gcd后依然满足前面的模公式. [代码] 1 #include<iostream> 2 using namespace std; 3 4 int main() { 5 int n; cin>>n; 6 long long gcd,x,a,b; 7 cin>>a>>b; x=b; gcd=a; 8 for(int i=0;i&

中国剩余定理 vijos1164 曹冲养猪

中国剩余定理的第一个模板. 这个模板比较简单,求的是一系列的模方程组 x % m = a 用这个模板有几个前提. 1:必须两两互质 2:全部乘起来不能爆long long #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string> #include<vecto