题意:一个渡河问题,船每次最多可以载n辆车,单程渡河的时间是t,有m辆车要渡河,问最少时间把所有车运过河去的时间是多少,这个情况下,最少的运输次数是多少。
表示还不太懂,过几天再看看吧,先为校内比赛准备点基础的题目算了
#include <iostream>
#include <algorithm>
using namespace std;
int max(int a, int b){return a>b?a:b;}
int t, n, cnt;
int a[1500];
int find(int p)
{
if(p<=n)return a[p];
else
{
cnt++;
return max(a[p], find(p-n)+t*2);
}
}
int main()
{
int k, m, i, ans;
scanf("%d", &k);
while(k--)
{
scanf("%d %d %d", &n, &t, &m);
for(i=1; i<=m; i++)
{
scanf("%d", &a[i]);
}
sort(a+1, a+m+1);
cnt = 1;
ans = find(m);
printf("%d %d\n",ans+t, cnt);
}
return 0;
}

浙公网安备 33010602011771号