QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 4991|回复: 40
收起左侧

[讨论] 3分钟内找出答案的人具有编程的潜力

[复制链接]
发表于 2006-12-19 17:40:37 | 显示全部楼层 |阅读模式 来自: 中国山东青岛

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
天黑,雨,四人欲过一座桥.桥破旧,每次最多能容两人同时通过.且只有一支手电(过桥必须用手电). 4 u  H/ f  s8 W

5 f% M( D; V) H  V' J甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟. . V6 {6 A; O) [6 z& g5 L: w2 r

& K$ g; Z4 M  ?/ u/ U则四人全部通过的最短时间是多少. 6 C/ Y7 `2 W6 A( C9 d( b2 s

! }" N4 q- a3 e3 b呵呵,试试看.
发表于 2006-12-19 19:46:14 | 显示全部楼层 来自: 中国安徽马鞍山
9分钟可以么??
发表于 2006-12-19 19:46:17 | 显示全部楼层 来自: 中国广东广州
8min
发表于 2006-12-19 19:48:05 | 显示全部楼层 来自: 中国安徽马鞍山
8分钟也能过啊?????我看要9分钟才行。楼上要告诉答案的话,请发信息给我,别告诉其他人啊!1 {  k  Y7 Y( K% e$ E* }; |8 \

+ C8 R+ a( Z: k[ 本帖最后由 江边 于 2006-12-20 09:08 编辑 ]
发表于 2006-12-20 08:20:21 | 显示全部楼层 来自: 中国山东烟台
1、2过桥,所用时间:2分钟。0 ]/ k# R. I0 H  H

: `3 B- j; v7 h3 p- r1回来,所用时间:1分钟。共用时间3分钟。
9 s2 Z# j+ |$ C& t  |
( E+ i+ l# `3 ^  Q5、7过桥,所用时间:7分钟。共用时间10分钟。7 H5 p: ?# m6 `) T  K
( m6 X" g& x7 ]. d4 Q6 u
2回来,所用时间:2分钟。共用时间:12分钟。
6 s: d$ a; M& Y- ~& S
8 L9 Z  l: ]- f( E( G/ @# l1、2过桥,所用时间:2分钟。共用时间:14分钟。
发表于 2006-12-20 09:02:58 | 显示全部楼层 来自: 中国安徽马鞍山
厉害!不过我算的是9分钟,再试试。
发表于 2006-12-20 12:49:20 | 显示全部楼层 来自: 中国山东德州
俺也用14分钟,同5楼
$ G9 h. S. U: ^6 ~: x
1 a4 E; C% E8 k……看来,编程与俺无缘了。3 o) C' L6 x- y( A+ h- M

( w( G% n2 v9 ~难道是,甲乙过,乙拿手电,1分钟后,丁上桥,1分钟后,甲拿手电返回,再1分钟后,丙拿手电上桥,等丁过桥后(已8分钟,丙拿手电在桥头等一下)甲过桥。共9分钟。
& k6 u5 ~% ?9 z1 D) T  l& B- d8 Y0 j  ~  |) p2 |- X
[ 本帖最后由 lizy323 于 2006-12-20 13:06 编辑 ]
发表于 2006-12-20 18:32:30 | 显示全部楼层 来自: 中国辽宁鞍山
九分种是不可能的,丁至少过河一次,花7分种,就算其余四次都是1分种(不过这是不可能的),也需11分种,哪来的九分种一说。不会不负责任瞎说。也算是14分,不知还有没有更少的。
发表于 2006-12-20 19:16:27 | 显示全部楼层 来自: 中国广东广州
没人相信8MIN就可以啊!!!!!:Q
发表于 2006-12-21 00:21:34 | 显示全部楼层 来自: 中国山东德州
甲与丁过,丁拿手电,1分钟后,乙上桥,再2分钟后丙上桥,7分钟时丁在桥头等一分钟,与丙在第8分钟同时过桥。
5 Q. x# K5 E; _7 a$ {. J9 B; T; Q0 c( ?( ?. T1 d& J7 C/ t
果然8分钟呀!
发表于 2006-12-22 08:48:23 | 显示全部楼层 来自: 中国安徽马鞍山
八分钟有两个人赞成了,我的九分钟就没有人赞成么????5 I  b  N6 Z/ m7 J# C& J
7 v; A' C6 y6 x0 ]! q+ E
3 y. r* H6 E0 Q( c
九楼啊!都没有人相信我九分钟!郁闷
发表于 2006-12-22 09:06:13 | 显示全部楼层 来自: 中国北京
我同意8分钟,也没说在同一边
$ P, K+ W5 `* r( t" a* W( n
9 H, b" X; t8 ?[ 本帖最后由 helen000 于 2006-12-22 09:07 编辑 ]
 楼主| 发表于 2006-12-22 10:47:09 | 显示全部楼层 来自: 中国山东青岛
按照编程的思想,14分钟 4 Z! G0 }3 f, N% @" c
先让甲和乙过去,甲回去,丙和丁过去,乙回去,最后甲和乙过去。2+1+7+2+2=14分钟。
/ h4 s& L, I3 @利用求图的最小生成树的算法,很容易解决
* y. w6 w5 O+ K$ Y& f#include
4 a2 e% P- z0 p9 `9 g' E* h2 t+ i#include
9 D& R# N6 z# X4 {
& |8 n9 v: |8 ]# ^# C5 Lint a[4]={1,2,5,7}; //每人过河时间
" x" t6 c  ]8 T+ I. E$ kint mark[4]; //0左1右
% p  ^. V! H4 x; n( Uint mark1[100]; //状态控制,只有2^4*2=32种状态# X) \1 M% \/ i0 r/ T6 K
int min;//最短时间, Y$ O& `: ^0 A# ?7 r  w) Y+ w  u. D
* M% p* ^. C; g. l* v/ J* T4 U
int test(int light) //返回状态值
: _6 o" |. n; e( c( ^{
8 k. v. ^" Z: pint i,j;
# e: v5 r8 d6 P) A1 z+ Fj=0;6 B+ c9 \- T0 e) b9 `) z7 i2 G7 v3 K
for(i=0;i<4;i++)2 `) i* L5 _3 P
{
+ @( G; ?4 B$ I& `2 `0 R+ xj*=2;7 I; V! ]. Z; Q8 s  T' o* b- E% O
j+=mark;
: K  i& A  j: U}
+ L8 D& n7 L- {' sj*=2;
6 Q8 ~; E7 H; p  `$ ?2 j2 A  i# sj+=light;
& B- f0 U+ Q' Z- c- n7 Q2 t" ^return j;+ G' j; v; @; o% C- j+ ]
}
/ |0 T* T) x% M0 q* \" u; J* }- j: v& ]1 n7 S. g4 z0 ~: n  |, w
int search(int time,int light) //搜索
6 Y1 B$ C2 W8 L7 u2 F  j; r* X$ V5 O{
6 W; n: k# [1 I5 Kint state;
6 l7 p3 Z( I. I. r2 I+ K' cint i,j,stime;" w" N/ e2 m6 p; S& H, Q6 ~

3 y3 M" i$ R. }: d/ Ostate=test(light);! v9 V& F- |# i3 H) I7 P
if(state==31) //终态:人和手电都在右岸
# k: C7 p. x- ]+ ]9 v{
$ c- U1 V3 w1 J2 g# {if(time return 1;
% b+ b, w& W: L; E' I  p: ^1 V}; C4 f( T. C* u8 w  l' P, ^! x: G

, d9 c  b8 }$ Y5 Z& [if(mark1[state]==1) return 0;
% x* W9 q9 |! b! Q7 w7 C0 Q) e
. v9 l  f, C0 u0 ~" wmark1[state]=1;5 |5 v! w. C  C* l% I

) \9 s: s, e% Bfor(i=0;i<4;i++) //1人, d) J$ b) j) o& y
{
2 b+ j; F7 S0 c" F; f: Gif(mark==light)# y4 K( j- s; D* L! ?
{+ c, }. T7 H5 s; w3 m9 |
mark=!mark;
# c' f9 S3 X8 o: g3 ]stime=a;
0 n4 |5 o9 n% X9 \search(time+stime,!light);
6 e9 d5 H; i  D* @; o8 emark=!mark;( ?! d0 W% F9 ^/ G& z2 E
}! o& |* s7 j) N. |6 @
}
; O4 c" E/ l* s1 d# J; H1 k# B; ^
: G0 v6 j' I% e! C/ n2 P/ b& A+ hfor(i=0;i<4;i++) //2人
) S3 c% r5 L& G, g& o( b1 e{6 ~2 p6 s* ]: z0 v$ w6 t
if(mark==light)
% K: w- v4 ^! l3 Z! s; c) X5 u{, W5 C  j- b8 g. g! o
mark=!mark;
% G. B7 M! g; A5 |, @( C6 J( y  J. B7 c9 ^0 g6 u# \0 e8 B
for(j=i+1;j<4;j++) ' S. _/ n: h3 t: G( D' L
{% W$ y3 x# E! D. J
if(mark[j]==light)
! G# G% i/ _; b6 A) O{
" X8 {6 a! S) e" W- bmark[j]=!mark[j];' y6 {4 K. f" G4 j# L7 y/ g2 |
stime=a[j]>a?a[j]:a;/ n; k, n4 a; ^+ J7 X$ ^5 s

7 N, O1 p0 m( ?3 y" P* I: g# Ysearch(time+stime,!light);
& J) ?$ h! k- b7 q. m# R- Cmark[j]=!mark[j];
8 n" ^3 N* S" \) m4 }( G( m}5 r% U$ c6 E( q, d) Y) A
}2 X' a7 [' S/ i! I; C' N
) ?% ~) k) G0 q$ s3 J6 j
mark=!mark;
: S3 e, Y' O$ h' m2 x- v6 U  s2 T: O}2 b, F" i8 \3 c& s
}
  g4 }9 ~& C' J6 |9 \
5 m1 c0 i" L1 s* z3 T# h) T" o7 T% x3 S' t: z( K8 N( C
mark1[state]=0;# m4 r7 n: M9 @+ V6 X
return 0;
! X9 A" v9 P0 X}
" r  E4 M% `( w3 w8 T( r* f! J8 d4 l6 _; D' x' l- h
void main()
0 |, ~* U3 p7 T: J- L: Z" q, p% c{( o& W( W! W0 L' I2 ~" K6 L7 ]
memset(mark,0,sizeof(mark));
5 E. V2 E3 B% Y) p& lmemset(mark1,0,sizeof(mark1));( s$ I; O; R: b

/ F: O$ u" S" b7 ^# S- Nmin=100;
9 W7 |; c7 N- ~* L6 e7 ~, p  W8 W* H0 g- m9 N' U9 a
search(0,0);' R, S# V% T0 s# ^

) T0 c, C4 B) A; @  vprintf("%d\n",min);" C' z- J- l1 y* O
}
& ]5 _- |3 Z4 m6 o( F9 c结果是14分钟。8 F  l4 P# r# u: q' \
提供一个思路:让走的慢的两人同时过桥。
发表于 2006-12-22 11:25:38 | 显示全部楼层 来自: 中国安徽滁州
九分钟多一点可以!!方法如下:# ~4 V, h/ W+ c+ h
甲、乙一起过,乙拿手电;甲过去时,乙到了桥中间,此时丙开始上桥;乙过去时,丙走过五分之一,此时乙把手电给甲,甲再上桥把手电给丙,来回一分钟不到;当甲重新到对面后,丁可以上桥了!!
发表于 2006-12-22 11:28:29 | 显示全部楼层 来自: 中国安徽滁州
刚才没注意看还是八分钟的对,哈哈,思路和我的一样,应该让甲丁先一起过!!!!
发表于 2006-12-22 12:18:19 | 显示全部楼层 来自: 中国上海
唉,2分钟嘛?甲乙一起过,上面背着丙丁
发表于 2006-12-22 13:14:56 | 显示全部楼层 来自: 中国浙江台州
我觉得应该是14分钟啊.
发表于 2006-12-22 13:30:05 | 显示全部楼层 来自: 中国广西南宁
标准答案:9分钟
8 T9 J6 v/ X; H0 G% I+ l) G$ l+ }4 L甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟, ^0 m+ S. s4 ?( {4 \8 B; t* L
甲乙同过桥需2分钟,交电筒给在桥另一端的丙丁1 b) W. ~" H/ I4 ^7 R; J
丙丁同过桥需7分钟,
- U" D+ f0 Z$ ?) j四人均过桥共需9分钟。- c4 n3 V( J4 D$ u
我在2分钟内找出答案。
 楼主| 发表于 2006-12-22 14:23:23 | 显示全部楼层 来自: 中国山东青岛
注意是必须用手电,而且要拿着手电照着才能国,不能给别人照着:time:
发表于 2006-12-24 13:34:35 | 显示全部楼层 来自: 中国山东烟台
白天再走的话,几分钟呢,如果打的要几分钟呢?
发表于 2006-12-26 16:00:21 | 显示全部楼层 来自: 中国辽宁鞍山
我一分钟内的答案是9分钟
发表于 2006-12-26 16:03:01 | 显示全部楼层 来自: 中国辽宁鞍山
不能给别人照着,那我可就有点琢磨不透了
发表于 2006-12-26 16:07:49 | 显示全部楼层 来自: 中国辽宁鞍山
你自己编的题吗?有漏洞啊!
1 e' J# T; T3 T) M8 T" x首先不把条件先讲清楚,后来才说不能给其它人照路.另外这四个人是都在桥的一侧还是桥两侧都有人,一共是四个人.
发表于 2006-12-26 17:34:16 | 显示全部楼层 来自: 中国广东汕头
应该是六分钟嘛,
' L. ^$ P& [# ?5 l快的带上慢的,慢的有快的带路肯定变快拉,
5 O7 U( v+ [! F/ X, q所以由甲来回带就行拉,最短时间应该是甲来回三次的时间和
3 V7 O3 J" A  C6分钟
发表于 2006-12-27 10:40:39 | 显示全部楼层 来自: 中国浙江台州
我的答案是16分钟:
# X8 M; d3 P: r6 m因考虑只有一只手电,且一次只能通过2人,所以速度最快者带着。
$ r( J  B% S8 }6 {! I( ?- j甲+丁=7
% W4 F2 }) F+ ?1 Q; S' ?甲回=1* ?6 ?; B4 V7 x; w
甲+丙=5
# V4 Z* |3 j, b- Q5 G- ]3 J7 Q甲回=17 U; P+ L& X0 U$ }# h1 t! {
甲+乙=2
; E  V5 A& v, n% a% {6 M. C3 g所以等于16分。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表