趣味程序设计_过桥问题

本文探讨一个逻辑推理问题——过桥问题。在夜间,N个人需要借助一个手电筒过桥,每次最多两人同行,速度以较慢者为准。题目要求编程求解使所有人过桥的最短时间。输入包括人数N和每个人的过桥时间,输出是最短总时间。样例输入和输出数据给出了问题的具体实例,文章还将介绍解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

过桥问题。有N(N≥2)个人在晚上需要从X地到达Y地,中间要过一座桥,过桥需要手电筒(而他们只有1个手电筒),每次最多两个人一起过桥(否则桥会垮)。N个人的过桥时间依次存入数组t[N]中,分别为:t[0], t[1], ……, t[N-1]。过桥的速度以慢的人为准!注意:手电筒不能丢过桥!问题是:编程求这N个人过桥所花的最短时间。

输入

有多组测试数据,

每组数据先输入一个人数N,然后输入这N个人过桥所花的时间。

输出

输出对应的最短时间。

样例输入

4 1 2 5 104 5 2 10 1

样例输出

17

17

思路:

4人过桥问题最佳方案构造法:以下是构造N个人(N≥1)过桥最佳方案的方法:
1)       如果N=1、2,所有人直接过桥。
2)      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值