去了新公司,新员工培训轮到外地的网络会议讲的时候声音小的跟蚊子一样,翻出acm来看,看了几遍也看不懂,很郁闷。 脑子像浆糊了一样。 晚上坐在老婆旁边,一边看《婆婆来了》,一边随便开了个华师大的acm网站,随便找了个练习题,还满简单的。 ##Description ##一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应 ##在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n <= 5000)和k(k <= 1024)个加油站位置,编程计算最少加油次数。 ##Input ##第一行有2个正整数n和k,表示汽车加满油后可行驶 n 公里,且旅途中有 k个加油站。接下来的 1 行中,有 k+1 个整数,依次表示第 i 个加油站与第 i-1 个加油站之间的距离。且第 1 整数表示第一个加油站与起点的距离,起点时汽车已加满油。第 k+1 个整数表示目的地与最后一个加油站的距离。 ##Output ##输出编程计算出的最少加油次数。如果无法到达目的地,则输出"No Solution!". ##Sample Input ##7 7 ##1 2 3 4 5 1 6 6 ##Sample Output ##4 distance=[1, 2, 3, 4, 5, 1, 6, 6] stationNum=7; canDriveDistance=7; currentCanDriveDistance=canDriveDistance; for i in range(len(distance)): currentCanDriveDistance=currentCanDriveDistance-distance[i] if distance[i]>canDriveDistance: print 'can not reach'; elif currentCanDriveDistance==0: print 'need fill'; currentCanDriveDistance=canDriveDistance; elif currentCanDriveDistance<0: print 'last station need fill'; currentCanDriveDistance=canDriveDistance-distance[i];