Crossing River

题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=26251

题意:

N个人希望去过河,但每次只能过两个且要有一个人把船划回来接其他的人;

两个人一起过河所用的时间是两个人中单独过河时间最多的;

求所有人过河所需要的最少的时间。

思路分析:

定义一个装n个人中每个人过河所需要的时间数组a[];并用sort进行从小到大进行排序。

求将最慢的和次慢的运过去所需的最少时间,下面有两种可能使所需时间最短的运送的方法:

1)先让最快的和次快的过去且让最快的回来,后要最慢的和次慢的过去让次快的回来;

这样所需要的时间为a[0]+2*a[1]+a[n-1]

2)让最慢的和最快的过去最快的回来;再让最快的和次慢的过去最快的回来;

这样所需要的时间为2*a[0]+a[n-1]+a[n-2]

将这两种方法所需的时间进行比较。

说明:当只有3个人或更少时不管如何过河所需的时间都是他们单独过河所需的时间的总和。

 #include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
int main()
{
int i,j,t,n,sum,a[maxn];
cin>>t;
while(t--)
{
j=;sum=;
cin>>n;
for(i=;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(i=n-;i>;i-=)
if(a[]+*a[]+a[i]<*a[]+a[i]+a[i-])
sum=sum+a[]+*a[]+a[i];
else
sum+=*a[]+a[i]+a[i-];
if(i==)
sum=sum+a[]+a[]+a[];
if(i==)
sum=sum+a[];
if(i==)
sum+=a[];
cout<<sum<<endl;
}
return ;
}

Crossing River的更多相关文章

  1. POJ 1700 Crossing River (贪心)

    Crossing River Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9585 Accepted: 3622 Descri ...

  2. Crossing River(1700poj)

    Crossing River Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9919   Accepted: 3752 De ...

  3. poj 1700 Crossing River 过河问题。贪心

    Crossing River Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9887   Accepted: 3737 De ...

  4. poj1700--贪心--Crossing River

    Crossing River Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12260   Accepted: 4641 D ...

  5. POJ1700:Crossing River(过河问题)

    POJ1700 题目链接:http://poj.org/problem?id=1700 Time Limit:1000MS     Memory Limit:10000KB     64bit IO ...

  6. I - Crossing River

    A group of N people wishes to go across a river with only one boat, which can at most carry two pers ...

  7. 贪心Crossing river

    英文题目: A group of N people wishes to go across a river with only one boat, which can at most carry tw ...

  8. POJ 1700 - Crossing River

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13982   Accepted: 5349 Description A gr ...

  9. ACM学习历程——POJ 1700 Crossing River(贪心)

    Description A group of N people wishes to go across a river with only one boat, which can at most ca ...

随机推荐

  1. PMP 第八章 项目质量管理

    1规划质量 2实施质量保证 3实施质量控制 质量成本 1.等级和质量的区别?现代质量管理的重要性,关注图8-2    质量是一些列内在特性满足要求的程度,而等级是对用途相同但技术特性不同的产品或服务的 ...

  2. Waiting Processed Cancelable ShowDialog

    namespace ConsoleApplication { using System; using System.Threading; using Microshaoft; /// <summ ...

  3. IIS配置php运行环境默认加载的php.ini路径

    第一步: 把PHP的安装路径添加到环境变量Path中,右键 “我的电脑” -> 高级 -> 环境变量 -> 系统变量,追加 D:PHP-5.2.8\; 第二步: 新建“系统变量” P ...

  4. 在Asp.Net MVC中实现CompareValues标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现Model两个中两个属性值的比较验证 具体应用场景为:要对两个属性值的大小进行验证 代码如下所示: /// ...

  5. javascript的笔记精简版

    在写javascript的代码时一定要用单引号或者双引号括起来,不带引号的话就以字符串来处理 在javascript里面不能以纯数字或者click命名函数或者变量 要想修改标签的属性,在html里面怎 ...

  6. 【转】Kylin的Hierarchies,Derived维度方面配置优化

    http://blog.csdn.net/jiangshouzhuang/article/details/51286150 Hierarchies: 理论上对于N维度,我们可以进行2的N次方的维度组合 ...

  7. SpringMyBatis解析2-SqlSessionFactoryBean

    通过分析整合示例中的配置文件,我们可以知道配置的bean其实是成树状结构的,而在树的最顶层是类型为org.mybatis.spring.SqlSessionFactoryBean的bean,它将其他相 ...

  8. hdu1003 dp

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1003 #include<cstdio> #include<algorit ...

  9. 程序员必备的代码审查(Code Review)清单【转载】

    在我们关于高效代码审查的博文中,我们建议使用一个检查清单.在代码审查中,检查清单是一个非常好的工具——它们保证了审查可以在你的团队中始终如一的进行.它们也是一种保证常见问题能够被发现并被解决的便利方式 ...

  10. eclipse下Android无法自动生成apk文件怎么办?

    eclipse下Android无法自动生成apk文件怎么办? 现象:创建android工程后,通过手动build/clean或自动build均无法在bin文件夹下生成.apk文件 解决方法:进入win ...