标题:bfs的问题,答案ok,提交runtime error
只看楼主
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 19楼 beyondyf
呵呵 什么讲义不讲义的  简单说下思路  

这个题目要求的是最短路径步数 而不是最短路径  这样就可以把这张图看成一张

有向无权图  然后当然广搜就行啦  如果还不知道广搜是啥 去问谷歌大神  

其实第一眼看到这个题目还是想预处理打表做 于是开了dp[100005] 但是后来发现起点是输入而定的

所以不能预处理   还是对每组数据都搜了下  既然不打表了  那么这个dp[100005]就是多余的

不知谁能把它给我去掉

                                         
===========深入<----------------->浅出============
2012-03-30 13:59
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 20楼 于祥
为啥不能用

                                         
===========深入<----------------->浅出============
2012-03-30 14:00
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
奇怪 为什么我数组开到100000 比如#define N 100000   int a[N] 运行后出现栈溢出的问题?
 老杨的数组也开到100000啊 ……

梅尚程荀
马谭杨奚







                                                       
2012-03-30 15:00
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 23楼 有容就大
额  这个我就不知道啦   估计是你队列里面存在相同的状态

看看是不是搜索的时候忘了做标记了或者其它的什么

                                         
===========深入<----------------->浅出============
2012-03-30 15:07
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 16楼 有容就大
提醒你一下  30万的数组可不能开在栈里面当局部变量啊

                                         
===========深入<----------------->浅出============
2012-03-30 17:17
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
去vc6里改了下设置就可以了
但是我那个提交的时候超时了


梅尚程荀
马谭杨奚







                                                       
2012-03-30 19:15
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
得分:0 
学习了,我会学习广搜的.
2012-03-30 20:56
double聪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:118
注 册:2011-11-19
得分:40 
那么多人回复。。此题也ac了。。。是
if(ju[k-1]==0){
    enqueue(&s,k-1);   
    ju[k-1]=ju[k]+1;
 }
改成了
if(ju[k-1]==0 && k-1){
    enqueue(&s,k-1);  
    ju[k-1]=ju[k]+1;
 }
2012-03-30 21:24
巴克
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:199
注 册:2012-2-8
得分:0 
回复 28楼 double聪
多谢,也谢谢楼上诸位的建议和方法.
2012-03-30 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-364742-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023213 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved