首页 > 其他 > 详细

poj 1700 Crossing River(贪心)

时间:2014-12-14 18:29:25      阅读:259      评论:0      收藏:0      [点我收藏+]

分析:题意

源岸数量<=3  很好判断 3:num[0]+num[1]+num[2] 2:num[1] ,1:num[0]

源岸数量>3

bubuko.com,布布扣

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main(void)
{
    int n,t ;
    int i,j;
    int num[1001];
    cin>>t;
    while(t--){
        cin>>n;
        for(i=0;i<n;i++) cin>>num[i];
        sort(num,num+n);
        int cnt=n,sum=0;
        while(cnt>3){
            int w1=num[0]+2*num[1]+num[cnt-1],w2=2*num[0]+num[cnt-2]+num[cnt-1];
            sum+=min(w1,w2);
            cnt-=2;
        }
        if(cnt==3) sum+=num[0]+num[1]+num[2];
        else if(cnt==2) sum+=num[1];
        else sum+=num[0];
        cout<<sum<<endl;
    }
    return 0;
}

 

poj 1700 Crossing River(贪心)

原文:http://www.cnblogs.com/woshijishu3/p/4162778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!