【题目描述】
几个人过河,每次过两人一人回,速度由慢者决定,问过河所需最短时间。
【输入】
输入t组数据,每组数据第1行输入n,第2行输入n个数,表示每个人过河的时间。
【输出】
输出t行数据,每行1个数,表示每组过河最少时间。
【输入样例】
1
4
1 2 5 10
【输出样例】
17
【心得】首先要搞明白题意,每次两个人过河,然后回来一个。先把规模最小化(不考虑三个人的)四个人过河,有两种方式,第一种最快的两个先过去,第一快的回来,最慢的两个再过去,第二快的回来,最后最快的两个再过去; 第二种是第一快的依次把其余的送过河,哪种用时少就采用哪种方式。规模大了无非就是重复此过程了。
【AC代码】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
const int M=10000;
using