帮解答的都是小可爱!

P1909 [NOIP2016 普及组] 买铅笔

您好!很高兴为您解答!一个整数除以一个整数的商是自动向下取整的,例如7/2=3.还有,您仍需考虑三个数都相等的情况(即x1==x2 && x1==x3),以下是我在您的程序的基础上修改的结果,如下: ```cpp #include <iostream> #include <cmath> using namespace std; int n,a1,s1,a2,s2,a3,s3; int x1,x2,x3; int main() { cin>>n>>a1>>s1>>a2>>s2>>a3>>s3; if(n%a1!=0) { x1=ceil(n/a1+1)*s1; } else { x1=ceil(n/a1)*s1; } if(n%a2!=0) { x2=ceil(n/a2+1)*s2; } else { x2=ceil(n/a2)*s2; } if(n%a3!=0) { x3=ceil(n/a3+1)*s3; } else { x3=ceil(n/a3)*s3; } if(x1<=x2 && x1<=x3) { cout<<x1; } else if(x2<=x1 && x2<=x3) { cout<<x2; } else if(x3<=x1 && x3<=x2) { cout<<x3; } return 0; } ``` 同时,我也给出我自己的代码(仅供参考): ```cpp #include <cstdio> int zs=0,mi=999999999; int main() { scanf("%d",&zs); for(int i=1;i<=3;i++) { int a=0,b=0; scanf("%d %d",&a,&b); int l=0,yh=0; while(l<zs) { l+=a; yh+=b; } if(yh<mi) { mi=yh; } } printf("%d",mi); return 0; } ```
by Drinkkk @ 2017-10-07 20:49:08


emmm...我可是大可爱 ```cpp #include<iostream> using namespace std; int n,num,money,minn=1<<30; int main() { cin>>n; for(int i=1;i<=3;i++) { int cost; cin>>num>>money; if(n%num==0) cost=n/num*money; else cost=(n/num+1)*money; minn=min(minn,cost); } cout<<minn; return 0; } ```
by Chanis @ 2017-10-07 20:53:26


```cpp #include<iostream> using namespace std; int main() { int n,i,x,y,ans; int minx=100000000; cin >> n; for(i=1;i<=3;i++) { cin >> x >> y; if(n%x==0) ans=(n/x)*y; else ans=(n/x+1)*y; if(ans<minx) minx=ans; } cout << minx << endl; return 0; } ```
by VenusM1nT @ 2017-10-07 21:15:53


可爱而帅气的我贴上代码 ```cpp #include<iostream> #include<cstdio> using namespace std; int main() { /*freopen("pencil.in","r",stdin); freopen("pencil.out","w",stdout);*/ int i,j,k,n,a[4]={0},b[4],jia[4]={0},panduan[4],t,p=1; int jiage[4]; cin>>n; for(i=1;i<=3;i++) cin>>a[i]>>b[i]; for(i=1;i<=3;i++) { p=1; t=p*a[i]; while(t<n) { p++; t=p*a[i]; } jia[i]=(p)*b[i]; } for(i=1;i<=2;i++) for(j=1;j<=3-i;j++) { if(jia[j]<=jia[j+1]) { k=jia[j]; jia[j]=jia[j+1]; jia[j+1]=k; } } cout<<jia[3]<<endl; return 0; /*fclose(stdin); fclose(stdout);*/ } ```
by 跃动の光は @ 2017-10-21 19:58:00


Emmmm... 好像就我的程序最短 ```cpp #include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; int n,ans=2147483640; int main() { cin>>n; for (int i=1;i<=3;i++) { int a,b,k=0; cin>>a>>b; if (n%a!=0) k=1; ans=min(ans,((n/a)+k)*b); } cout<<ans; } 何必要用那么多if!!?? ```
by 飞翔的金鱼 @ 2017-10-24 21:34:45


巧了,我用了n个while。。。。。。 ```cpp #include<cstdio> #include<iostream> using namespace std; int n,a,b,c,a1,b1,c1,i=0,x,m1,m2,m3; int main() { cin>>n; cin>>a>>a1; cin>>b>>b1; cin>>c>>c1; while(x<n){ x+=a; m1+=a1; } x=0; while(x<n){ x+=b; m2+=b1; } x=0; while(x<n){ x+=c; m3+=c1; } if(m1<m2&&m1<m3)cout<<m1; if(m2<m1&&m2<m3)cout<<m2; if(m3<m2&&m3<m1)cout<<m3; return 0; } ```
by wyjzsx1314 @ 2017-10-24 22:05:04


恶膜某民命秒没 傻不愣登的写了个函数玩(并没有卵用) ```cpp #include <bits/stdc++.h> using namespace std; int n; int ans=2100000000; int p[5],v[5]; int gogo(int kkk){ if(n%p[kkk]==0){ return v[kkk]*(n/p[kkk]); }else{ return v[kkk]*(n/p[kkk]+1); } } int main(){ cin>>n; for(int i=1;i<=3;i++){ cin>>p[i]>>v[i]; } int n[5]; for(int i=1;i<=3;i++){ n[i]=gogo(i); ans=min(ans,n[i]); } cout<<ans; return 0; } ```
by Neo_Kylinson @ 2017-10-26 22:30:59


```cpp #include<cstdio> int min(int a,int b) {return a<b?a:b;} int main() { int s1,s2,s3,p1,p2,p3,l1,l2,l3,n; scanf ("%d%d%d%d%d%d%d",&n,&l1,&p1,&l2,&p2,&l3,&p3); if (n%l1) s1=(n/l1+1)*p1; else s1=n/l1*p1; if (n%l2) s2=(n/l2+1)*p2; else s2=n/l2*p2; if (n%l3) s3=(n/l3+1)*p3; else s3=n/l3*p3; printf ("%d",min(s1,min(s2,s3))); } emmmmmm…… ```
by Victory_Defeat @ 2017-12-18 21:19:52


那个说最短的,看看我这个自己都不知道怎么过了的 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int n, a, b, c, d, e, f; cin >> n >> a >> b >> c >> d >> e >> f; int minn; minn = int(n%a!=0?int(n/a+1):int(n/a))* b; minn = min(minn, int(n%c!=0?int(n/c+1):int(n/c))*d); minn = min(minn, int(n%e!=0?int(n/e+1):int(n/e))*f); cout << minn; return 0; } ```
by Lhc_fl @ 2018-07-16 22:57:58


再“精简”一下 ```cpp #include<bits/stdc++.h> int main(){ int n,a,b,c,d,e,f,minn; return ((minn=((std::cin>>n>>a>>b>>c>>d>>e>>f),minn=int(n%a!=0?int(n/a+1):int(n/a))*b,minn=std::min(minn,int(n%c!=0?int(n/c+1):int(n/c))*d),std::min(minn,int(n%e!=0?int(n/e+1):int(n/e))*f))),(std::cout<<minn),0); } ```
by Lhc_fl @ 2018-07-16 23:05:03


|