下面通过一些典型实例及其扩展来讨论递推法的应用。【例2】骨牌铺方格      在2×n的一个长方形方格中,用一种2×1的骨牌铺满方格。输入n(n<=40),输出铺放方案的总数。      例如n=3时,为2×3方格,骨牌的铺放方案有三种,如下图1所示。 图1  2×3方格
过河问题一、问题描述二、问题答案三、扩展四、问题推广五、对于本题的最优选择:coding 一、问题描述在漆黑的夜里,甲乙丙丁共四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的
题目大意是只有一艘船,能乘2人,船的运行速度为2人中较慢一人的速度,过去后还需一个人把船划回来,问把n个人运到对岸,最少需要多久。先将所有人过河所需的时间按照升序排序,我们考虑把单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式:1.最快的和次快的过河,然后最快的将船划回来;次慢的和最慢的过河,然后次快的将船划回来,所需时间为:t[0]+2*t[1]+t[n-1];2.最快的和最慢的过河,然
经典的过河问题:一个人(猎人)带了:一只鸡(羊),一条狗(狼),一袋米(草),遇到一条河,河边有一条船,船太小每次只能带一样东西,此人如何将自己的三件物品完好的带到对岸?(注:若是VS2010开发工具源码复制可直接运行,若是其他开发工具,可能要小部分修改,源码核心算法不用改动。具体实现请查看相应注释!此文仅供学习参考!)程序源码:// CrossRiver.cpp :定义控制台应用程序的入口点。/
# 商人过河问题:经典的逻辑难题 商人过河问题(也称为“过河问题”)是一个经典的逻辑推理问题,它在计算机科学、数学和游戏理论中都有广泛的应用。在这个问题中,一个商人需要过一条河,船只能容纳商人和他的一些物品,但有一些限制,必须遵循特定的规则。让我们详细探讨这个问题,并通过 Python 代码来实现解决方案。 ## 问题描述 商人有三个物品:一只狼、一只羊和一筐白菜。他需要将它们从河的一岸运到
原创 2024-09-19 07:10:26
60阅读
过河问题定义问题定义过河问题是一个经典的算法问题。假设有只牛和只虎要过河,河中只有一条船,船至多能乘坐只动物。在河的任意一边或船上,虎的数量不能多于牛的数量,否则牛会被吃掉。问:是否存在合理的渡河方案,使得所有动物能够安全过河?若存在,输出最少过河次数的渡河方案。 牛虎过河问题衍生出很多同类问题,如农夫与强盗过河、传教士与野人过河等等,换汤不换药,问题的解法完全相同。解题思路此类问题先定义好状态空
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阅读
1点赞
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阅读
描述 在漆黑的夜里,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评论
1 问题描述现在有8个人分别为:1个父亲,带着他的2个儿子。1个母亲,带着她的2个女儿;1个警察,带着1个犯人; 开始时,8个人都是在河的左岸。现在需要过河过河时需要注意下面5条说明:1,只有警察、父亲和母亲可以划船;2,警察如果离开犯人,犯人就会伤害其他人;3,母亲不在时,这个父亲会伤害她的女儿。4,父亲不在时,这个母亲也会伤害他的儿子;5,船上一次最多只能坐两个人。试用python求出过河
## Python解决商人过河问题 商人过河问题是经典的逻辑谜题之一,常常用于考验问题解决和程序设计的能力。这个问题的大致是:一个商人需要带着一只狼、一只羊和一些白菜过河,但他每次只能带一样东西。如果留下狼和羊,狼会吃羊;如果留下羊和白菜,羊会吃白菜。我们需要设计一个算法来解决这个问题。 ### 整体流程 我们可以将整个问题的步骤流程清晰地展示在表格中: | 步骤 | 描述
原创 2024-09-18 06:15:20
95阅读
# 商人过河问题Python程序实现 ## 1. 简介 商人过河问题是一个经典的智力游戏,目标是将三个商人和三个物品(如狼、羊和白菜)安全地从一边的河岸过河到另一边。但是有一些限制条件需要遵守: 1. 商人和物品都可以单独过河,但是商人必须陪同物品过河才能确保安全。 2. 狼和羊不能单独留在一起,因为狼会吃掉羊。 3. 羊和白菜也不能单独留在一起,因为羊会吃掉白菜。 在这篇文章中,我将教会
原创 2023-08-28 12:13:25
627阅读
数学模型 商人过河问题 C++实现问题描述 将过河问题抽象为一个数学问题,安全渡河即为一个多步决策问题,在安全的前提下,每一步都考虑船上的商人与随从人数情况。 决策问题通常从考虑状态,决策,状态转移方程入手。状态 设表示第次渡河前此岸的商人数与随从数,显然有。 考虑安全的状态集合即其中第一项表示商人全部在对岸,此岸无商人,故无法抢劫;第二项表示商人全部在此案,对岸无商人,亦无法抢劫;第三项表示两岸
1 //问题:有3个传教士和3个野人要过河,只有一艘船,这艘船每次 2 //只能载2个人过河,且无论哪边野人的数量大于传教士的数量时, 3 //野人就会吃掉传教士。怎样让他们都安全过河? 4 5 #include <stdio.h> 6 #include <string.h> 7 8 #define STEP_MAX 20 //来回过河的次数
转载 2023-12-13 11:41:30
59阅读
  • 1
  • 2
  • 3
  • 4
  • 5