经典的过河问题:一个人(猎人)带了:一只鸡(羊),一条狗(狼),一袋米(草),遇到一条河,河边有一条船,船太小每次只能带一样东西,此人如何将自己的三件物品完好的带到对岸?(注:若是VS2010开发工具源码复制可直接运行,若是其他开发工具,可能要小部分修改,源码核心算法不用改动。具体实现请查看相应注释!此文仅供学习参考!)程序源码:// CrossRiver.cpp :定义控制台应用程序的入口点。/
转载
2023-12-24 11:30:25
43阅读
过河问题一、问题描述二、问题答案三、扩展四、问题推广五、对于本题的最优选择:coding 一、问题描述在漆黑的夜里,甲乙丙丁共四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的
转载
2023-12-01 18:19:54
149阅读
题目大意是只有一艘船,能乘2人,船的运行速度为2人中较慢一人的速度,过去后还需一个人把船划回来,问把n个人运到对岸,最少需要多久。先将所有人过河所需的时间按照升序排序,我们考虑把单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式:1.最快的和次快的过河,然后最快的将船划回来;次慢的和最慢的过河,然后次快的将船划回来,所需时间为:t[0]+2*t[1]+t[n-1];2.最快的和最慢的过河,然
题目描述 有一个大晴天,Oliver与同学们一共N人出游,他们走到一条河的东岸边,想要过河到西岸。而东岸边有一条小船。 船太小了,一次只能乘坐两人。每个人都有一个渡河时间T,船划到对岸的时间等于船上渡河时间较长的人所用时间。 现在已知N个人的渡河时间T,Oliver想要你告诉他,他们最少要花费多少时
原创
2021-06-04 20:42:22
235阅读
也许更好的阅读体验Description\mathcal{Description}Description原题链接:Comet OJ洛谷大小各不相同的一队青蛙站在河左岸的石墩(记为A)上,要过到对岸的石墩(记为D)上去。河心有几片菏叶(分别记为Y1…Ym)Y1…Ym)Y1…Ym)和几个石墩(分别记为S1…Sn)S1…Sn)S1…Sn)。图示如下:青蛙的站队和移动方法规则如下...
原创
2021-12-27 15:15:20
353阅读
# 商人过河问题:经典的逻辑难题
商人过河问题(也称为“过河问题”)是一个经典的逻辑推理问题,它在计算机科学、数学和游戏理论中都有广泛的应用。在这个问题中,一个商人需要过一条河,船只能容纳商人和他的一些物品,但有一些限制,必须遵循特定的规则。让我们详细探讨这个问题,并通过 Python 代码来实现解决方案。
## 问题描述
商人有三个物品:一只狼、一只羊和一筐白菜。他需要将它们从河的一岸运到
原创
2024-09-19 07:10:26
60阅读
过河问题定义问题定义过河问题是一个经典的算法问题。假设有只牛和只虎要过河,河中只有一条船,船至多能乘坐只动物。在河的任意一边或船上,虎的数量不能多于牛的数量,否则牛会被吃掉。问:是否存在合理的渡河方案,使得所有动物能够安全过河?若存在,输出最少过河次数的渡河方案。 牛虎过河问题衍生出很多同类问题,如农夫与强盗过河、传教士与野人过河等等,换汤不换药,问题的解法完全相同。解题思路此类问题先定义好状态空
下面通过一些典型实例及其扩展来讨论递推法的应用。【例2】骨牌铺方格 在2×n的一个长方形方格中,用一种2×1的骨牌铺满方格。输入n(n<=40),输出铺放方案的总数。 例如n=3时,为2×3方格,骨牌的铺放方案有三种,如下图1所示。 图1 2×3方格
描述
在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的
原创
2023-04-25 09:09:33
278阅读
过河问题时间限制:1000 ms | 内存限制:65535 KB难度:5描述在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;...
转载
2014-03-28 20:06:00
129阅读
2评论
POJ1700 Cross River,一道贪心题,合理选择贪心策略
:http://poj.org/problem?id=1700
#include<iostream>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
原创
2011-05-08 00:14:19
573阅读
N个人要从河的一侧到另一次 一个船最多做2个人 这个船的速度受慢的人的影响。
输入一堆数,为每个人 的时间,怎么规划划船的总时间最少?
#include <iostream> #include <list> #include <algorithm> usi
原创
2011-12-30 23:29:17
482阅读
点赞
2评论
过河问题题目描述:在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借来源:http://acm.ny...
原创
2022-09-23 10:34:47
208阅读
思路:贪心思想(一般都是先排序)关键步骤:每次从此岸到彼岸移动的两个人要么这两个人中有一个是最快的那个人,要么这两个人到达彼岸后再也不回来。即:要么最快+最慢,要么最慢+次慢。1.对N个人过河时间从小到大排序。speed[i]2.分情况讨论:⑴当n = 1,直接过河。sum = speed[0](2)当n = 2,直接过河。 sum = speed[1](3)当n = 3,无论怎么过河, sum ...
原创
2021-07-13 14:50:23
185阅读
http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=47描述在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得...
转载
2018-10-31 18:16:00
106阅读
2评论
思路:贪心思想(一般都是先排序)关键步骤:每次从此岸到彼岸移动的两个人要么这两个人中有一个是最快的那个人,要么这两个人到达彼岸后再也不回来。即:要么最快+最慢,要么最慢+次慢。1.对N个人过河时间从小到大排序。speed[
原创
2022-03-10 18:05:35
210阅读
http://www.cppblog.com/abilitytao/archive/2009/03/28/78197.html有点不明白,为什么一定要两个两个的,存在一个最快的带动,不是也可以的么,再深度理解。。。解题思路:当人数等于1,2,3的时候:答案很容易得出;当人数大于等于4时:若设过桥速度最快的那个人过桥时间为a,第二快为b;过桥第二慢的那个人过桥时间为y,最慢为z;此时有两种过桥方案:
转载
2023-06-11 19:21:53
90阅读
1 问题描述现在有8个人分别为:1个父亲,带着他的2个儿子。1个母亲,带着她的2个女儿;1个警察,带着1个犯人; 开始时,8个人都是在河的左岸。现在需要过河,过河时需要注意下面5条说明:1,只有警察、父亲和母亲可以划船;2,警察如果离开犯人,犯人就会伤害其他人;3,母亲不在时,这个父亲会伤害她的女儿。4,父亲不在时,这个母亲也会伤害他的儿子;5,船上一次最多只能坐两个人。试用python求出过河方
转载
2023-07-28 16:39:45
100阅读
数学模型 商人过河问题 C++实现问题描述 将过河问题抽象为一个数学问题,安全渡河即为一个多步决策问题,在安全的前提下,每一步都考虑船上的商人与随从人数情况。 决策问题通常从考虑状态,决策,状态转移方程入手。状态 设表示第次渡河前此岸的商人数与随从数,显然有。 考虑安全的状态集合即其中第一项表示商人全部在对岸,此岸无商人,故无法抢劫;第二项表示商人全部在此案,对岸无商人,亦无法抢劫;第三项表示两岸
转载
2023-12-27 17:01:32
190阅读
1.问题描述在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这N人尽快过桥。或许还有类似的问题,问题的描述可能不尽完全相同,
转载
2024-02-11 19:51:40
44阅读