概述:现在有一艘船运输车辆,每次运输限定了运输量和运输时间,每辆车到的时间不同,现在求最小运输时间和最小运输次数。
思路:每次将船装满,最短时间就是最后一辆车到来的时间,关于最少次数要求最后一次不用回来,就是最少次数。
感谢:这个题没有思路,题的思路是看的别人的,知道思路之后才自己做的,不过在提交又犯了那个问题!!!!!调试完又忘了删掉调试代码!!
#include<iostream>
#include<fstream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
int time[10000] = { 0 };
int n, t, m;
//ifstream cin("in.txt");
int Case;
cin >> Case;
while (Case--)
{
cin >> n >> t >> m;
int r = m%n;
int k = m / n;
int time_sum = 0, tips_sum;
if (r)
tips_sum = k + 1;
else
tips_sum = k;
for (int i = 1;i <= m;i++)
cin>>time[i];
if (r)
time_sum = time[r] + t * 2;
int j = 1;
while (j <= k)
{
if (time_sum >= time[j * n + r])
{
time_sum += t * 2;
if (j == k)
time_sum -= t;
}
else
{
time_sum = time[j * n + r] + t * 2;
if (j == k)
time_sum -= t;
}
j++;
}
cout << time_sum << " " << tips_sum << endl;
}
return 0;
}