QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
天黑,雨,四人欲过一座桥.桥破旧,每次最多能容两人同时通过.且只有一支手电(过桥必须用手电). 9 m( |4 d! W( M( N' Y
( ]! d" s! \3 {+ P- N* c
甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟. 5 N" @! J" [; ?  l
' t8 W7 S9 B( I& H
则四人全部通过的最短时间是多少.
7 v& d, I) V, ]5 q0 o& S8 l8 ]1 H: a$ }2 Z. C' T
呵呵,试试看.
发表于 2006-12-19 19:46:14 | 显示全部楼层 来自: 中国安徽马鞍山
9分钟可以么??
发表于 2006-12-19 19:46:17 | 显示全部楼层 来自: 中国广东广州
8min
发表于 2006-12-19 19:48:05 | 显示全部楼层 来自: 中国安徽马鞍山
8分钟也能过啊?????我看要9分钟才行。楼上要告诉答案的话,请发信息给我,别告诉其他人啊!- a5 A/ {, s9 L* n
# f6 {: R, W) |  p7 g( Q9 ]
[ 本帖最后由 江边 于 2006-12-20 09:08 编辑 ]
发表于 2006-12-20 08:20:21 | 显示全部楼层 来自: 中国山东烟台
1、2过桥,所用时间:2分钟。
  W1 q. O/ A2 `6 [8 I* T+ H- S8 ^9 E5 q- m) g
1回来,所用时间:1分钟。共用时间3分钟。
' B2 Y8 X1 T  m) O7 D. R
" T0 y) \+ k7 O: m% x* n. t5、7过桥,所用时间:7分钟。共用时间10分钟。
  i  S* N! n$ C3 J) B! l; I# k  O( E  n
2回来,所用时间:2分钟。共用时间:12分钟。
  X' w3 a  b$ i, G) i8 f: N" {$ B' M" ]# g' g
1、2过桥,所用时间:2分钟。共用时间:14分钟。
发表于 2006-12-20 09:02:58 | 显示全部楼层 来自: 中国安徽马鞍山
厉害!不过我算的是9分钟,再试试。
发表于 2006-12-20 12:49:20 | 显示全部楼层 来自: 中国山东德州
俺也用14分钟,同5楼
( Y+ B# A1 v& R, S& }6 h3 O6 E, o7 _7 k, ^# P! }
……看来,编程与俺无缘了。+ g  W7 P2 T, g0 D) M4 ?/ U6 V
2 f+ g5 m/ `& [! g
难道是,甲乙过,乙拿手电,1分钟后,丁上桥,1分钟后,甲拿手电返回,再1分钟后,丙拿手电上桥,等丁过桥后(已8分钟,丙拿手电在桥头等一下)甲过桥。共9分钟。
$ h1 d$ B5 Y  h$ X+ n0 v( `. g, ~# v% o! \0 L! T% ]4 U- t
[ 本帖最后由 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分钟同时过桥。- v+ o! W/ H% @

6 S0 _3 Y3 F; C0 \果然8分钟呀!
发表于 2006-12-22 08:48:23 | 显示全部楼层 来自: 中国安徽马鞍山
八分钟有两个人赞成了,我的九分钟就没有人赞成么????% W8 V) S6 Z4 M* M, W+ \5 l
+ c$ M- q, G3 C  a0 E. M
( o* n2 a+ n  c* E+ Q
九楼啊!都没有人相信我九分钟!郁闷
发表于 2006-12-22 09:06:13 | 显示全部楼层 来自: 中国北京
我同意8分钟,也没说在同一边
. R( {+ w) Z7 c$ m7 Y4 B6 Y
5 {" |/ y- {3 [[ 本帖最后由 helen000 于 2006-12-22 09:07 编辑 ]
 楼主| 发表于 2006-12-22 10:47:09 | 显示全部楼层 来自: 中国山东青岛
按照编程的思想,14分钟 4 H; V6 W9 l2 K! e8 |# m+ E8 T
先让甲和乙过去,甲回去,丙和丁过去,乙回去,最后甲和乙过去。2+1+7+2+2=14分钟。
/ B& B& Y: h$ i! b3 g2 ]利用求图的最小生成树的算法,很容易解决! i( ~3 P8 r, E$ g" l
#include* `) y: S$ T, [; C5 {/ H. R5 g
#include2 o4 N* Q/ n# t, ^
. X$ V1 g" u6 i+ p
int a[4]={1,2,5,7}; //每人过河时间
' c/ y4 l" E, T6 Q7 {* Hint mark[4]; //0左1右
3 ?( y4 F+ t3 \' {5 Xint mark1[100]; //状态控制,只有2^4*2=32种状态
/ N# D& G. |2 Bint min;//最短时间
$ c0 ]. |; V7 r* @+ f( y
" \+ _7 \2 e* t! L% zint test(int light) //返回状态值
# R( {6 B% [6 h$ T5 B, E* f- O{$ Z0 D. c9 v% i7 Q& f; F( `5 U
int i,j;
9 k7 d7 ]  o  \( {4 nj=0;
& X6 E0 A% D/ Wfor(i=0;i<4;i++)4 c, K' B7 E8 G( L1 P* t
{
+ Y2 Z. H( A( _# w. aj*=2;2 m' i4 W, N" l7 y0 u. j" K/ O
j+=mark;4 B2 a' Q9 d9 {
}: I0 z+ H- e) b- w8 }
j*=2;
4 S/ g% ?" q- J/ M4 a1 G2 v# a* j" qj+=light;* r: u3 r, C, H, R) Y
return j;; o" o* A$ W/ @5 m  |  v. Q
}
4 ^; d. `' v4 t6 x. \
0 R+ m, l  V  o; @1 V" G5 B3 Sint search(int time,int light) //搜索% z. S& ?0 z8 @6 F8 b* E' n& a7 q$ f; o0 N
{* Q  @" ?, x/ n  x- b- g: D
int state;0 q* @$ Z$ @6 W0 y# |/ ?$ \9 ]! `4 ?1 X
int i,j,stime;
' L0 h" P# I5 u
# o) V# `( G, h1 [/ C/ t) {* O1 [state=test(light);
8 X  D" S5 k) r' c9 e9 `if(state==31) //终态:人和手电都在右岸
. \  E- U- y+ m# F{
* _* S2 Y$ Y8 D, R% qif(time return 1;! N/ O# J- t. h
}
# u& L$ U* }* K/ A. {& p1 A$ B' ?% U6 v" w7 Y
if(mark1[state]==1) return 0;: y9 {7 D+ V% L) |, |: g

  Q7 }/ U, u! P% Q6 @$ c0 Nmark1[state]=1;7 ]1 a8 j: w! X& H; B) ^( ~

; w; _# ?; M* M9 g1 pfor(i=0;i<4;i++) //1人8 Y  ?0 ]0 [$ B
{. F$ D% o2 e/ F" n6 s6 u
if(mark==light)2 Q  q; m0 M6 c/ x/ v. }3 U- T+ I
{$ u6 R, r( K+ r) r- c9 R6 j
mark=!mark;  G. u0 {/ ^* T, S; \
stime=a;
; Q9 [6 C8 U4 I, tsearch(time+stime,!light);
; m/ t" C" U6 ?% j8 }5 m" e7 ~mark=!mark;
: i- u, F3 W. Q5 \$ q}% b( @) s. P$ J, U/ Q
}0 v* f: |) q' y1 ]. P+ [7 N
$ Y% \; }% I6 B2 V3 |1 c/ ]* k
for(i=0;i<4;i++) //2人
6 k# m9 L/ v; R* f' I{! b3 P. n: Z/ a6 h1 S
if(mark==light)8 H4 A; p: @2 O6 p: u- ^; Z! d
{
7 b$ s. o+ X6 n( B) P: e) rmark=!mark;. ^; G7 L4 c4 x' [8 }+ l

2 F5 j4 ]- Y; _8 e+ q+ G! ^for(j=i+1;j<4;j++)   r4 h5 g/ D, G8 ?" m
{3 `8 X1 K4 l, k8 k
if(mark[j]==light)
* l5 B; w- f4 |; a( w{
2 ?: W/ K. c! M" t1 }mark[j]=!mark[j];
) s: x: S8 p6 E1 P& P- s0 P. Sstime=a[j]>a?a[j]:a;
' J( V  _3 d) e" K
- m9 F/ r! u/ o4 }7 E# usearch(time+stime,!light);
. O1 [% ^, B4 g9 smark[j]=!mark[j];  f% F( x' B+ ]5 h; L% H2 s
}
" c0 Z1 z0 {9 x  U3 z( b}( f) C4 @3 N3 N0 x6 l4 y3 ^) E

' k6 q) j# x8 e7 t9 vmark=!mark;
7 _" K+ x( F& L}5 V7 X, f. h$ Y% Z0 e/ R% V& g
}; [! ]& a% D: `0 p

* |! i6 ]% k" t' r% {
; \1 Q* |  C: umark1[state]=0;0 ^% V: r# W' I" z& J1 q4 K
return 0;/ J5 @+ I- N- o1 W
}
3 N% d. c7 {! ~! w: T$ s* F7 @
0 R. |: M% H3 ?void main()/ l0 f+ R! {$ u( Q: O
{
% I; f$ Z9 M, B' C6 \1 p- X: `memset(mark,0,sizeof(mark));% n6 b( B' g2 U% B1 p( U
memset(mark1,0,sizeof(mark1));
# i0 P0 I# b) W9 h( x! |9 M
2 j% Q" z, T1 Hmin=100;# g' R9 o( q: O

6 H6 u  ~5 g7 U5 x7 O% F6 `search(0,0);
! z7 z# {6 Q! k; ^8 @9 s9 Q9 L% i
+ }4 k2 k: a3 }( W7 kprintf("%d\n",min);
! s7 |+ ?7 ?2 U. H5 z$ H}
3 f2 g5 n  H8 W* L9 [6 w+ |* W结果是14分钟。
$ Y" [) f3 b/ O0 @提供一个思路:让走的慢的两人同时过桥。
发表于 2006-12-22 11:25:38 | 显示全部楼层 来自: 中国安徽滁州
九分钟多一点可以!!方法如下:4 b1 U& q% [9 l" J/ _3 A
甲、乙一起过,乙拿手电;甲过去时,乙到了桥中间,此时丙开始上桥;乙过去时,丙走过五分之一,此时乙把手电给甲,甲再上桥把手电给丙,来回一分钟不到;当甲重新到对面后,丁可以上桥了!!
发表于 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分钟
5 x" v$ N, x6 P甲单独过桥需1分钟,乙需2分钟,丙需5分钟,丁需7分钟4 G# p5 _$ \( d3 g! Y, C' T
甲乙同过桥需2分钟,交电筒给在桥另一端的丙丁9 H5 v% R0 N0 O( ~
丙丁同过桥需7分钟,
* a3 G/ Z# ]& x0 O5 g四人均过桥共需9分钟。# }( e9 O& C: J" |/ M
我在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 | 显示全部楼层 来自: 中国辽宁鞍山
你自己编的题吗?有漏洞啊!
' G) E) S8 L5 X* E# F, v. K- \首先不把条件先讲清楚,后来才说不能给其它人照路.另外这四个人是都在桥的一侧还是桥两侧都有人,一共是四个人.
发表于 2006-12-26 17:34:16 | 显示全部楼层 来自: 中国广东汕头
应该是六分钟嘛,
7 {1 u- S9 i( f2 l+ u( z快的带上慢的,慢的有快的带路肯定变快拉,
  `, t, |9 j/ {: S- P) r所以由甲来回带就行拉,最短时间应该是甲来回三次的时间和
6 M5 |0 u  h% h1 {. z1 ~$ y" b4 Q6分钟
发表于 2006-12-27 10:40:39 | 显示全部楼层 来自: 中国浙江台州
我的答案是16分钟:! M6 ^' v  g8 ?, @& `- w: h
因考虑只有一只手电,且一次只能通过2人,所以速度最快者带着。7 i" R6 t  s# ?4 e+ q
甲+丁=7" ~1 e. k4 J9 w; p, m5 m) s# P
甲回=1* c# i# B3 N4 s/ e1 m# h& R& `
甲+丙=51 i+ u# \$ R! t, F5 y( k/ B+ i9 ~
甲回=1  [+ M6 `5 i' ~( T$ q5 N. z8 Z
甲+乙=29 P% f: n' i- h0 w# x1 b4 l
所以等于16分。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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