博客里面好像没办法嵌入flash,加入之后,flash并不显示,只显示一片空白,不知道是博客等级缘故还是本身的限制

下面给出地址,有兴趣自己去试试

建议玩过了这个游戏后,再看下面的思路

问题描述

有n个人要在晚上过一座独木桥,他们过桥速度有快有慢,每次最多只能有两个人过桥,而且他们只有一盏灯,他们必须在规定时间内全部通过,否则灯会灭掉。

玩过这个游戏的人会得出两个简单逻辑,一灯必须靠快的人传递,二,两个人的过桥时间取决于慢的人。有了这两个基本信息,我们先将问题缩小为两个人A和B的情形,假定速度是从快到慢,下同

A,B的过桥时间为B

三个人的情况

A,B,C,简单想一下可以得出,为了使得传递速度够快,需要A作为传递的人,所以过桥方案为

1.A,C过桥

2,A返回

3 A,B过桥

总计时间 C+A+B

下面要考虑四个人的情形ABCD

这里有两种作法

方案S1

由A当传递,根据上述分析,我们很快可以得到最终时间为D+C+B+2*A

方案S2

由A,B当做传递,过桥方案为

1,A,B先过

2,A返回

3,D,C过(最慢的要一起过,这样可以节省时间)

4,B返回

5,A,B过桥

总计时间 B+A+D+B+B

将两个方案比较一下,S1的总时间T1-S2的总时间T2 = A+C-2*B

A+C-2*B >0则用方案2,否则用方案1

由此,我们将思路整理一下

首先将N个人按照速度从快到慢排成一个队列q[]

当n>3的时候,取队列的最后两位(最慢)和最前两位(最快),组合成ABCD,根据A+C-2*B的情况,采用某个过桥方案。n-=2,重复该过程直到n<=3为止。

当n==3

过桥时间为A+B+C

当n==2,过桥时间为B

当n==1,过桥为A

程序清单

#include

#include

#define PERSON_NUM    5

#define TIME_LIMITS   30

#define A    speed[0]

#define B    speed[1]

#define C    speed[n-2]

#define D    speed[n-1]

#define LAST speed[n-1]

int speed[PERSON_NUM] = {1,3,6,8,12};//已经按照升序输入,若没有,

//可以使用sort或者qsort排序

void print_solution1(int n)

{

printf("1th,%dth

printf("1th -->  times need %d\n",speed[0]);

printf("1th,%dth

printf("1th -->   times need %d\n",speed[0]);

}

void print_solution2(int n)

{

printf("1th,2th

printf("1th -->  times need %d\n",speed[0]);

printf("%dth,%dth

printf("2th -->   times need %d\n",speed[1]);

}

void main()

{

int times = 0;

int n = PERSON_NUM;

while(n>0)

{

if(n>3)

{

if((A+C)>2*B)   //采用方案2

{

times+=(D+A+2*B);

print_solution2(n);

}

else

{

times+=(D+C+2*A);

print_solution1(n);

}

n-=2;

}

else if(n==3)

{

times += (A+B+LAST);

printf("LAST_A,B,C   times need %d\n",(A+B+LAST));

break;

}

else if(n==2)

{

times+=(B);

printf("LAST_A,B   times need %d\n",(B));

break;

}

else if(n==1)         //只有一个人的情况

{

times+=A;

break;

}

}

printf("min time: %d   \n",times);

}

测试输入

1,3,6,8,12

1,5,6,8,12

1,8,9,11,12,13,15,20,100

下一期预告

泰坦尼克号赌船

过桥问题c语言程序,盏灯过桥游戏相关推荐

  1. 过桥问题c语言程序,多人过桥问题【c语言递归实现】【源代码】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define MAX 100 int GuoQiao(int a[], int n) { int time; if (n==1) { ...

  2. c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT

    <单片机控制LED灯点亮(C语言).PPT>由会员分享,可在线阅读,更多相关<单片机控制LED灯点亮(C语言).PPT(45页珍藏版)>请在人人文库网上搜索. 1.1,单片机控 ...

  3. 交通灯控制系统设计左转倒计时protues仿真的c语言程序,交通灯控制系统设计

    内容介绍 原文档由会员 ½ӨӨ 发布 交通灯控制系统设计 1万字 32页 包括程序代码,系统原理图,Proteus仿真过程 摘要 本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展.交通 ...

  4. 黄灯闪烁c语言程序,交通灯控制程序 需要加一个黄灯闪烁三次 求求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "reg52.h" //头文件typedef unsigned char u8;typedef unsigned i ...

  5. 流水灯循环点亮c语言程序,流水灯来回点亮程序(汇编和C)

    前头看单片机c语言,忘了汇编,这几天跟几位兄弟去给下面的师弟师妹上实验课,用的是wave的实验箱.用汇编语言编程.算是一个复习. 汇编:本文引用地址:http://www.eepw.com.cn/ar ...

  6. 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...

    斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...

  7. c语言程序模拟点灯,点灯游戏(自己编的)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include typedef struct stu { int x; int ...

  8. c语言程序女设计教学效果分析,提高C程序设计教学效果的策略

    摘 要:本文针对高等院校非计算机专业学生特点和C语言程序设计在教学中存在的问题,从激发学生学习兴趣入手,注重教学方法,机房实验,考核形式等多方面分析并提出一定的改进方法,实现有效教学,达到教与学的共赢 ...

  9. 四人过桥、三盏灯 三个开关 的答案

    题目都还是比较老了,再来温习下吧: 1. 有两个房间,其中一间房里有三盏灯,另一间房里有控制这三盏灯的开关.这两间房是相对独立.相对封闭的,没有空 上的直接联系:三盏灯与三个开关也没有顺序上的必然联系 ...

最新文章

  1. python生成有条件的列表_python复杂列表生成式教程
  2. CodeForces - 1263A Sweet Problem(思维,水题)
  3. iOS NSString和NSDate转换
  4. linux构建主从域名服务器
  5. html 手机访问优化,移动端首屏优化
  6. webstorm使用gitee_webstorm 中 git 基本操作
  7. FTP学习的一些笔记
  8. java获取页面点击次数_在Java中怎样得出一个按钮点击的次数
  9. cojs 安科赛斯特 题解报告
  10. 使用Docker+Jenkins自动构建部署
  11. [LeetCode] Number of 1 Bits 位操作
  12. 超全!常见自动化运维工具全解析(含ansible、Puppet、SaltStack教程)
  13. 钉钉入局在线文档市场,阿里和腾讯再次对决?
  14. 电流检测的方式与误差来源
  15. Python实战:淘宝自动抢购
  16. 从玩法、叙事、主题三个角度浅要谈谈《死亡搁浅》的好与坏
  17. 与mysql类似的数据库_目前主流的数据库是哪种?
  18. 【Eelectron-vue】构建桌面应用(20)-electron的退出quit和exit
  19. 软件英文术语缩写大全
  20. 鼠标移上去触动hover致使div向上移动几个相素(动画transition轻轻的移动)

热门文章

  1. 在创建ArcGIS Server10.5的站点时,系统提示创建‘System/publishingToolsEX.GPServer’失败(转)...
  2. SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
  3. Level3公司在哥伦比亚开通运营第三个数据中心
  4. 如何修改系统时间显示格式
  5. 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)【转】
  6. Sparse low rank approximation
  7. Android 导入项目时出现错误的解决方法(红色感叹号)
  8. 解决博客园模版错误排版的一个问题
  9. ubuntu+php+mysql+apache安装配置
  10. pythonweb服务器部署iis_Python开发入门与实战15-IIS部署