HDU3232 Crossing rivers
思路:这题关键一点就是根据题目的描述和测试数据得到启发,船都是
从对岸划过来的。心中有具体场景,就可以很简单了。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<cstdio> 2 int main() 3 { 4 double d, p, l, v, sum, flag = 0; 5 int n, kase = 1; 6 while(~scanf("%d %lf", &n, &d)) 7 { 8 if(n == 0 && d == 0) break; //跳出 9 sum = 0; 10 while(n--) 11 { 12 scanf("%lf %lf %lf", &p, &l, &v); 13 sum += 2*l/v; //船从对岸过来,再过河,在水上共花费的时间 14 d -= l; //剩余的就是陆地上的长度。 15 } 16 if(n == 0) 17 { 18 printf("Case %d: ", kase ++); //n为0时则直接输出d 19 printf("%.3lf\n", d); 20 continue; 21 } 22 sum += d; //直接加上陆地上的长度,就是总时间 23 //if(flag ++) printf("\n"); //刚开始用的是这步,结果PE了一发。 24 printf("Case %d: ", kase ++); 25 printf("%.3lf\n\n", sum); //注意输出格式 26 } 27 return 0; 28 }