请教算法
vb吧
全部回复
仅看楼主
level 8
tbzp666 楼主
你有一个迷宫,里面有障碍和非零数字:你可以从任何一个方块开始,在迷宫中行走,最后停在某个方块。每走一步,你只能走进四个相邻的方块(上、下、左、右)中的一个,并且你不能走进障碍物或者走进一个方块超过一次。当你完成时,你可以按照你遇到的顺序写下你遇到的数字,从而得到一个数字。例如,您可以获得数字9784、4832145等。你能得到的最大号码是791452384,如上图所示。你的任务是找到你能得到的最大数字。
[输入格式]
最多有25个测试用例。每次测试从两个整数R和C开始(2<=R,C<=15,R*C<=30),迷宫的行数和列数。接下来的R行代表迷宫。每行正好包含C个字符(没有前导或尾随空格),每个字符要么是' # '要么是九个非零数字中的一个。迷宫中至少会有一个无障碍方块(即含有非零数字的方块)。输入被R=C=0的测试用例终止,您不应该处理它。
[输出格式]
对于每个测试用例,在一行中打印出你能找到的最大数字。
这是什么算法?与图有关?
1)如何生成一个10×10的矩阵,每个字符是1~9和“#”其中的任意一个,怎么表示
2)起始点从哪里开始,又从什么时候结束
2025年05月28日 01点05分 1
level 9
迷宫没仔细看,10*10的矩阵,你可以把#当成0,用随机数生成,然后再替换。
2025年05月29日 05点05分 2
漂亮,我真没有想到
2025年05月29日 08点05分
level 12
其实不用图,这就是一个比较典型的嵌套 + 剪枝算法,
主要流程如下:
1、生成 一个10*10的数组,
2、用随机数填充数组
3、用深度优先或广度优先嵌套 遍历,每走一步用缓存保存走过的数字
4、碰撞剪枝 + 已经走过位置的剪枝
5、如果无路可走比较结果,找到最大的数,再找到最大数对应的嵌套流程
6、生成步法
2025年05月30日 09点05分 3
好的,谢谢,我再查查资料
2025年05月30日 13点05分
1