题意:一个渡河问题,船每次最多可以载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; }