您的位置:首页 > 其它

poj1700 Crossing River

2016-07-13 19:40 211 查看
/article/6021401.html

这篇博客讲的很好,推荐一下。

自己想了一个小时都不会,太菜了。

核心思路是让重的先走。

hljs cpp">#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int a[1010],ans;
void duhe(int x)
{
int i,j,k,m,temp1,temp2;
if(x==1)
{
ans+=a[1];
}
if(x==2)
{
ans+=max(a[1],a[2]);
}
if(x==3)
{
//sort(a,a+n);
ans+=a[3];
ans+=a[1];
ans+=a[2];
}
if(x>3)
{
i=1;
j=2;
k=x-1;
m=x;
temp1=a[i]+2*a[j]+a[m];
temp2=2*a[i]+a[m]+a[k];
ans+=min(temp1,temp2);
duhe(x-2);
}
return ;
}
int main(void)
{
int t,n;
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
ans=0;
sort(a+1,a+n+1);
duhe(n)
;
cout<<ans<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: