时间限制:1000 ms  |  内存限制:65535 KB
难度:5
描写叙述

在漆黑的夜里,N位旅行者来到了一座狭窄并且没有护栏的桥边。假设不借助手电筒的话,大家是不管怎样也不敢过桥去的。不幸的是,N个人一共仅仅带了一仅仅手电筒。而桥窄得仅仅够让两个人同一时候过。

假设各自单独过桥的话,N人所须要的时间已知;而假设两人同一时候过桥。所须要的时间就是走得比較慢的那个人单独行动时所需的时间。问题是,怎样设计一个方案,让这N人尽快过桥。

输入
第一行是一个整数T(1<=T<=20)表示測试数据的组数

每组測试数据的第一行是一个整数N(1<=N<=1000)表示共同拥有N个人要过河

每组測试数据的第二行是N个整数Si,表示此人过河所须要花时间。(0<Si<=100)
输出
输出全部人都过河须要用的最少时间
例子输入
1
4
1 2 5 10
例子输出
17

感觉比較新鲜的一道题

代码:

#include <iostream>
#include <algorithm> using namespace std; int main()
{
int n,m,i,j,k;
cin>>n;
while(n--)
{
cin>>m;
int *a=new int[m];
for(i=0;i<m;i++)
cin>>a[i]; sort(a,a+m); k=0;
while (m>3)
{
if(2*a[1]<a[0]+a[m-2])
{
k+=a[1]; //a[0]和a[1]过河
k+=a[0]; //a[0]回来
k+=a[m-1]; //a[0]和a[n-1]过河
k+=a[1]; //a[1]回来
}
else
{
k+=a[m-1]; //a[0]和a[n-1]过河
k+=a[0]; //a[0]回来
k+=a[m-2]; //a[0]和a[n-2]过河
k+=a[0]; //a[1]回来
}
m-=2;
} if(3==m)
k=k+a[0]+a[1]+a[2];
else if(2==m)
k=k+a[1];
else if(1==m)
k=k+a[0]; cout<<k<<endl; delete[] a;
}
return 0;
}

NYOJ 47 河问题的更多相关文章

  1. nyoj 47 江 河问题 【贪婪】

    经典的贪婪. 两种方案:一个:让我们来最快,第二快,在过去的第一,最快的回.然后最慢,最慢第二,在过去.次最快的回来a[0]+a[1]+a[1]+a[n-1] 二:最快的和最慢的过去,最快的回来,最快 ...

  2. NYOJ 47:过河问题(思维)

    47-过河问题 内存限制:64MB 时间限制:1000ms 特判: No 通过数:6 提交数:10 难度:5 题目描述: 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话 ...

  3. nyoj 47-过河问题 (贪心)

    47-过河问题 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:2 submit:5 题目描述: 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的 ...

  4. NYOJ 47-过河问题

    点击打开链接 过河问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不 ...

  5. NYOJ 47过河问题

    主要思路:先排序.有两种可能是最小的情况,一种是让最小的去带着最大的过去,然后最小的再回来,还有一种就是先最小的和第二小的一块过去, 然后最小的回来,让最大的和第二大的过去,接着第二小的回来,第二小和 ...

  6. NYOJ 47

    思路: 在n>3的时候就用前两个小的来带后两个大的,有两种方式(一就是1,2先过,然后1回来,然后n,n-1过,然后2,回来),(二就是 1,n先过去 然后1回来,然后 1,n-1过去吗.,然后 ...

  7. nyoj 47——过河问题——————【贪心】

    过河问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的 ...

  8. 过河问题--nyoj题目47

    过河问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的 ...

  9. nyoj 737 石子合并 http://blog.csdn.net/wangdan11111/article/details/45032519

    http://blog.csdn.net/wangdan11111/article/details/45032519 http://acm.nyist.net/JudgeOnline/problem. ...

随机推荐

  1. Visual Studio的SDK配置

    Visual Studio的SDK Visual Studio 6.0自带的SDK是1998年的,目录为C:\Program Files\Microsoft Visual Studio\VC98\,这 ...

  2. 修改注册表添加IE信任站点及启用Activex控件

    Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/In ...

  3. NSHashTable 和 NSMapTable学习

    今天,在实现play gif时间功能,我看见两个陌生班,只需看看这个纪录: NSSet和NSDictionary是两个经常使用的类,可是他们默认假定了当中对象的内存行为.对于NSSet.object是 ...

  4. GCC编译优化指南【作者:金步国】

    GCC编译优化指南[作者:金步国] GCC编译优化指南 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分 ...

  5. c# listview导出excel文件

    首先在工程中需要添加对Microsoft Excel office 11.0 object的引用 生成excel的类代码如下 using System; using System.Collection ...

  6. 4.锁--无锁编程以及CAS

    无锁编程以及CAS 无锁编程 / lock-free / 非堵塞同步 无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被堵塞的情况下实现变量的同步,所以也叫非堵塞同步(Non-b ...

  7. 30分钟快速掌握AngularJs

    [后端人员耍前端系列]AngularJs篇:30分钟快速掌握AngularJs   一.前言 对于前端系列,自然少不了AngularJs的介绍了.在前面文章中,我们介绍了如何使用KnockoutJs来 ...

  8. Unix文本处理工具之awk

    Unix命令行下输入的命令是文本,输出也都是文本.因此,掌握Unix文本处理工具是很重要的一种能力.awk是Unix常用的文本处理工具中的一种,它是以其发明者(Aho,Weinberger和Kerni ...

  9. C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]

    C#同步SQL Server数据库中的数据 1. 先写个sql处理类: using System; using System.Collections.Generic; using System.Dat ...

  10. Spring MVC Hello World Example(转)

    Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, i ...