1014 bridge ferries

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;

   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值