求问各位大佬,为什么95分

P1909 [NOIP2016 普及组] 买铅笔

个人认为你sum初值赋小了,可以用cout<<min(s[1],min(s[2],s[3]))<<endl;可以去掉sum这个变量
by zy小可爱ღ @ 2017-07-19 22:22:06


```cpp #include<ctdio> #include<cstdlib> int main() {int i,j,n,a[10],b[10],s[10],t; scanf("%d",&n); for(i=0;i<3;i++) scanf("%d%d",&a[i],&b[i]); for(i=0;i<3;i++) { t=n/a[i]; if(t*a[i]==n) s[i]=t*b[i]; if(t*a[i]!=n) { t=t+1; s[i]=t*b[i]; } } for(i=0;i<2;i++) for(j=0;j<3-1-i;j++) if(s[j]>s[j+1]) { t=s[j]; s[j]=s[j+1]; s[j+1]=t; } printf("%d",s[0]); return 0; } ```
by 唯爱你一生 @ 2017-07-20 23:28:02


你把那个数据点下载了啊: 我的程序: ```cpp #include<bits/stdc++.h> using namespace std; long long a[5][5],tot[5]; int xuwei(long long a,long long b,long long c) { long long tishen,sum=c; tishen=b; while (b<a) { b+=tishen; sum+=c; } return sum; } int main() { long long i,j,m,min=9223372036854775807; cin>>m; for (i=1;i<=3;i++) for (j=1;j<=2;j++) cin>>a[i][j]; for (i=1;i<=3;i++) { tot[i]=xuwei(m,a[i][1],a[i][2]); if (tot[i]<min) min=tot[i]; } cout<<min<<endl; return 0; } ```
by Hanabi_BNUAZ @ 2017-08-04 09:52:09


```cpp #include<iostream> using namespace std; int n,mini=0x7f7f7f7f; struct pencil{ int number,money; }a; int does(){ int x=0,y=0; while(1){ y+=a.money; x+=a.number; if(x>=n)return y; } } int main(){ scanf("%d",&n); int i=3; while(i--){ scanf("%d%d",&a.number,&a.money); mini=min(mini,does()); } printf("%d",mini); } ```
by ezoiHQM @ 2017-08-13 20:04:19


这里推荐一种赋sum初始值的办法,把sum赋值为0x7fffffff-1绝对够大
by a1234 @ 2017-08-14 17:32:14


@ 青春流觞,这道题sum最少是999999才行。
by 美人为限 @ 2017-09-02 13:47:12


|