0
已解决
熊潇然
初级启示者
初级启示者
7278 曹冲养猪
经验值:2800 时间限制:1000毫秒 内存限制:512MB
题目描述 Description
自从曹冲搞定了大象以后,曹操就开始琢磨让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲很不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把。
举个例子,假如有 1616 头母猪,如果建了 33 个猪圈,剩下 11 头猪就没有地方安家了;如果建造了 55 个猪圈,但是仍然有 11 头猪没有地方去;如果建造了 77 个猪圈,还有 22 头没有地方去。你作为曹总的私人秘书理所当然要将准确的猪数报给曹总,你该怎么办?
输入描述 Input Description
第一行包含一个整数 nn,表示建立猪圈的次数;
接下来 nn 行,每行两个整数 a_i, b_iai,bi,表示建立了 a_iai 个猪圈,有 b_ibi 头猪没有去处。你可以假定 a_i,a_jai,aj 互质。
输出描述 Output Description
输出仅包含一个正整数,即为曹冲至少养猪的数目。
样例输入 Sample Input
3
3 1
5 1
7 2
样例输出 Sample Output
16
数据范围及提示 Data Size & Hint
对于全部数据,1≤n≤10,1≤bi≤ai≤1000。
#include<bits/stdc++.h>
using namespace std;
int n,a[15],b[15];
bool check(int x){
for(int i=1;i<=n;i++){
if(x%a[i]!=b[i]){
return 0;
}
}
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int k=0;;k++){
if(check(k)){
cout<<k;
break;
}
}
return 0;
}
TLE 50分
哪位大佬过来指点一下!
熊潇然在2022-10-26 09:49:52追加了内容
d
熊潇然在2022-10-26 10:46:08追加了内容
@汪宇航 样例都没过
#include<bits/stdc++.h>
using namespace std;
int n,a[15],b[15];
int ans;
bool check(){
for(int i=1;i<=n;i++){
if(ans%a[i]==b[i]){
return 0;
}
}
return 1;
}
int gcd(int a,int b){
int r;
while(a%b!=0){
r=a%b;
a=b;
b=r;
}
return b;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int k=0;;k++){
ans=ans*k/gcd(ans,k);
if(check()){
cout<<k;
break;
}
}
return 0;
}
熊潇然在2022-10-26 15:18:33追加了内容
@汪宇航 帮我解决一下
0
0
0
0
包思远
新手启示者
新手启示者
我会,但30豆不够!!得100豆!!
还有:
150豆 告诉你一道和这一样的3分题+1道7分题
200豆 150豆的结果上再告诉你1道8分题
0