POJ-1700-Crossing River

来源:互联网 发布:龙记模胚报价软件 编辑:程序博客网 时间:2024/05/22 00:55

贪心题吧,两种贪心策略,一种是最快的+最慢的,最快的回来,再最快的+次慢的,最快的回来,第二种是最快的+次快的,次快的回来,再最慢+次慢过河,在最快的回来。

代码:

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=1100;int a[maxn],n;int main(){    int T;    scanf("%d",&T);    while(T--)    {scanf("%d",&n);for(int i=0;i<n;i++)    scanf("%d",&a[i]);if(n==1){    printf("%d\n",a[0]);    continue;}sort(a,a+n);int i,ans=0;for(i=n-1;i>=0;){    if(i<3)break;    int ita=2*a[0]+a[i]+a[i-1];    int itb=2*a[1]+a[0]+a[i];    if(ita<itb)ans+=ita;    elseans+=itb;    i-=2;}if(i==2)    ans+=a[0]+a[1]+a[2];else    ans+=a[1];printf("%d\n",ans);    }    return 0;}