Fzu_1076 穿越沙漠

特此怀念我的第一道题(虽然当初没搞懂)

1、当距离剩下500 m时,保证此时还有油500 L,要么油箱自带,要么此处存有500 L

2、当距离大于500 m但差距不多,比如501 m时,先带上500 L,行驶1 m(意证是1 m而不是更大的)后留下498 L,返回,加入3 L,行1 m, 带上此地的498 L,行驶……共需500+3 L(去+回+去)

3、易知本阶段最大可延伸至500+500/3 m(1000L)

4、当距离大于500+500/3 m且差距不大时,同上(2),只是1000 L至少需3次才可加满,加上回来,共5次。所以本阶段最大可延伸至500+500/3 m+500/5(1000L)

5、同上……

 

规律:设j=Σ500/(2*i-1),当j一旦大于路程n,费用=i*500-(j-n)(2*i-1)

 

#include using namespace std; int m; int main(){ int i,n; double j,k; scanf("%d",&m); while(m>0){ m--; scanf("%d",&n); j=0; i=0; while(j

你可能感兴趣的:(Fzu_1076 穿越沙漠)