#includeusing namespace std;int main(){int n;cin>>n;int w1,w2,h1,h2;cin>>w1>>w2>>h1>>h2;int v1=w1*w1*h1;int v2=w2*w2*h2;int vt=v1+v2;int max=0;int yuan[n];for(int i=0; i{cin>>yuan[i];int hx=0;if(yuan[i]>vt){v1=0;v2=0;hx=h1+h2;}if(v1!=0){if(yuan[i]>v1){hx+=v1/(w1*w1);yuan[i]=yuan[i]-v1;hx+=yuan[i]/(w2*w2);v2=v2-yuan[i];v1=0;}if(yuan[i]{hx+=yuan[i]/(w1*w1);v1=v1-yuan[i];}}else if(v2!=0){if(yuan[i]>v2){hx+=v2/(w2*w2);v2=0;}if(yuan[i]{hx+=yuan[i]/(w2*w2);v2=v2-yuan[i];}}if(hx>max) max=hx;}cout<}
兩個錯誤:
1. v1!=0和v2!=0下面的程式沒有考慮等號的情況。應改為if(yuan[i]>=v1),if(yuan[i]>=v2)
2.vt的問題:
(1)要動態更新目前的vt=v1+v2
(2)yuan[i]>vt的計算方式應改為v1/(w1*w1)+v2/(w2*w2)
參考答案(有縮排)
小叮嚀:下次請別人幫忙時盡量縮排,方便閱讀。
#includeusing namespace std;int main(){int n;cin>>n;int w1,w2,h1,h2;cin>>w1>>w2>>h1>>h2;int v1=w1*w1*h1;int v2=w2*w2*h2;int vt=v1+v2;int max=0;int yuan[n];for(int i=0; i{cin>>yuan[i];int hx=0;if(yuan[i]>vt){v1=0;v2=0;hx=h1+h2;}if(v1!=0){if(yuan[i]>v1){hx+=v1/(w1*w1);yuan[i]=yuan[i]-v1;hx+=yuan[i]/(w2*w2);v2=v2-yuan[i];v1=0;}if(yuan[i]{hx+=yuan[i]/(w1*w1);v1=v1-yuan[i];}}else if(v2!=0){if(yuan[i]>v2){hx+=v2/(w2*w2);v2=0;}if(yuan[i]{hx+=yuan[i]/(w2*w2);v2=v2-yuan[i];}}if(hx>max) max=hx;}cout<}兩個錯誤:
1. v1!=0和v2!=0下面的程式沒有考慮等號的情況。應改為if(yuan[i]>=v1),if(yuan[i]>=v2)
2.vt的問題:(1)要動態更新目前的vt=v1+v2
(2)yuan[i]>vt的計算方式應改為v1/(w1*w1)+v2/(w2*w2)
參考答案(有縮排)小叮嚀:下次請別人幫忙時盡量縮排,方便閱讀。
謝謝