[MeetCoder] Crossing Bridge

Crossing Bridge

Description

N people wish to cross a bridge at night. It’s so dark around there that they have to cross the bridge under the help of a little lamp. Only one little lamp is available (Oh, Men...) and they have to have the little lamp walking with them. The bridge is of a width such that a maximum of 2 people may cross at a time.

Each person walks at his/her fixed speed. If two people cross the bridge together, they must walk at the pace of the slower one. How fast can you get all N people over the bridge?

Input

The input should be a list of N positive integers, where N is less than or equal to 1,000. And each integer of the list should be less than or equal to 100.

Output

The output should be the minimum time that all the people can cross the bridge.

Sample Input

1 2

Sample Output

2

HINT

Greedy

过桥问题!主要参考:http://blog.csdn.net/morewindows/article/details/7481851

 1 class Solution {
 2 private:
 3     int _bridge(vector<int> &v, int n) {
 4         if (n == 0) return 0;
 5         if (n == 1) return v[0];
 6         if (n == 2) return v[1];
 7         if (n == 3) return v[0] + v[1] + v[2];
 8         int res = 0;
 9         int a = v[0], b = v[1], x = v[n-2], y = v[n-1];
10         if (2 * b > a + x) res += 2 * a + x + y;
11         else res += a + 2 * b + y;
12         return res + _bridge(v, n - 2);
13     }
14 public:
15     int bridge(vector<int> &v) {
16         sort(v.begin(), v.end());
17         return _bridge(v, v.size());
18     }
19 };
20 /**************************************************************
21     Problem: 45
22     User: easonliu
23     Language: C++
24     Result: Accepted
25     Time:1 ms
26     Memory:2708 kb
27 ****************************************************************/
时间: 2024-10-26 02:26:14

[MeetCoder] Crossing Bridge的相关文章

poj 3404 Bridge over a rough river(过桥问题)

题目链接:http://poj.org/problem?id=3404 Bridge over a rough river Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4024   Accepted: 1644 Description A group of N travelers (1 ≤ N ≤ 50) has approached an old and shabby bridge and wishes to cro

设计模式 -- 桥接模式(Bridge Pattern)

桥接模式 Bridge Pattern 结构设计模式 定义: 分离抽象部分和实现部分,使他们独立运行. 避免使用继承导致系统类个数暴增,可以考虑桥接模式. 桥接模式将继承关系转化为关联关系,减少耦合,减少代码量. 例如: public interface Shape { public void bepaint(String color); } public abstract class Color { Shape shape; public void setShape(Shape shape)

Bridge模式

Bridge模式 Bridge模式 在面向对象的开发过程中,要做到2点:1.高内聚(cohesion),2.松耦合(coupling).但是在实际开发过程中难以把握,例如会遇到这样的问题: 1)客户给了一个需求,之后我们用一个类A来实现. 2)客户的需求有了变化,要用到2个算法来实现.于是我们通过定义一个抽象基类A,在用两个具体类A1和A2实现这两个算法. 3)客户需求又有了变化,要求在2个操作系统上实现.我们再抽象一个层次,不同操作系统抽象为A0和A1,每个操作系统上有2个算法,在实现为A00

OpenStack —— 网络进阶Linux Bridge(七)

一.配置Linux Bridge Neutron默认使用ML2作为core plugin,其配置位于/etc/neutron/neutron.conf,控制节点和计算节点都需要在各自的neutron.conf 中配置core_plugin选项. 然后需要让ML2使用linux-bridge mechanism driver,ML2的配置文件位于/etc/neutron/plugins/ml2/ml2_conf.ini. [ml2] # ... mechanism_drivers = linuxb

[BZOJ1617][Usaco2008 Mar]River Crossing渡河问题

1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1102  Solved: 801 [Submit][Status][Discuss] Description Farmer John以及他的N(1 <= N <= 2,500)头奶牛打算过一条河,但他们所有的渡河工具,仅仅是一个木筏. 由于奶牛不会划船,在整个渡河过程中,FJ必须始终在木筏上.在这个基础上,木筏上的奶牛数

9,桥接模式(Bridge Pattern)是将抽象部分与实际部分分离,使它们都可以独立的变化。

Bridge 模式又叫做桥接模式,是构造型的设计模式之一.Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任. 它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展.  适用于: 桥接模式(Bridge Pattern)是将抽象部分与实现部分分离(解耦合),使它们都可以独立的变化. 车 安装 发动机 :不同型号的车,安装不同型号的发动机        将"车

P2904 [USACO08MAR]跨河River Crossing

P2904 [USACO08MAR]跨河River Crossing 题目描述 Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when he finds himself blocked by a river. A single raft is available for transportation. FJ knows that he must ride on the ra

使用Linux Bridge 搭建vxlan 实现 虚拟机跨物理机通信

#实验环境: #本次实验要让192.168.1.3 跨物理节点 ping 通 192.168.1.2 #两台物理机: KVM_1 192.168.174.134 KVM_2 192.168.174.135 #在KVM_1主机上操作 #安装KVM相关软件 [[email protected]_1 ~]#  yum -y install qemu-kvm libvirt virt-install bridge-utils [[email protected]_1 ~]# systemctl star

Linux虚拟机安装配置准备工作之--- VMware ( Bridge )

前言: 宿主机所在网段:192.168.1.X    Mask 255.255.255.0 虚拟机所在网段:192.168.2.X    Mask 255.255.255.0 宿主机:192.168.1.45 客户机:192.168.1.102 虚拟机:192.168.2.16 因为公司192.168.1.X这个网段的IP几将用完,所以我准备给虚拟机分配192.168.2.X 这个网段的IP地址.但是公司的其它同事(包括宿主机本身都在192.168.1.X)这网段 之内.如何让有需要的的同事可以