1014 Problem O
Before bridges were common, ferries were used to transport cars across rivers.
题意:渡船运输车辆,在一天不同的时间,汽车按时刻表到达,计算出将全部车辆运完的最短时间,以及渡船所运输的次数。
思路:由汽车数量及渡船的数量,可知渡船需要运输的次数,对于每辆汽车不同时间到达,但渡船在河中的运输时间不变,可知如果在渡船到达岸边后,汽车未到,则渡船需要等待,而它等待的时间,在加上它之前往返花费的时间,就是汽车达到渡船的时间,依次类推。
感想:还是注意问题的简化吧!渡船在河中耗费时间不变,因此总的耗时,就只需要计算,汽车到达渡船的时间,问题会简单不少。
#include<iostream>
using namespace std;
int main(){
int i,k,n,t,m;
cin>>k;
while(k--){
cin>>n>>t>>m;
int mintime=0;
int tim;
int a=m%n;
int times=m/n;
if(a) times++;
for(i=0;i<a;i++){
cin>>tim;
mintime=tim+2*t;
}
int cnt=0;
while(i<m){
cin>>tim;
cnt++;
if(cnt==n){
if(tim>mintime)
mintime=tim+2*t;
else mintime+=2*t;
cnt=0;
}
i++;
}
cout<<mintime-t<<" "<<times<<endl;
}
}