我试图做这个比赛锻炼一下图:帮助:图形竞赛题:也许是改进Dijkstra或其他替代算法
XPTO是一个勇敢的冒险家(有点太temerarious为自己的好),谁拥有关于探索宇宙的每一个角落,无论多么不友善。事实上,他并没有访问人们可以轻松生活的行星,他更喜欢那些只有疯子才会有很好理由(例如数百万信用点)的行星。他最近的一次尝试是在Proxima III中生存。问题是Proxima III遭受高度腐蚀性酸的风暴破坏了一切,包括特别设计用于承受腐蚀的太空服。
我们勇敢的探险家在这些风暴中的一个矩形区域被捕。幸运的是,他有一种能够测量每个区域酸的确切浓度以及它对太空服造成多大伤害的仪器。现在,他只需要知道他是否能躲过风暴。 问题
问题包括找到一个逃生路线,这将允许XPTO逃离有毒风暴。你会获得太空服的初始能量,矩形区域的大小以及宇航服站在每个区域时受到的伤害。
您的任务是找到出口扇区,达到它的步数以及他的服装在离开矩形区域时的能量数量。选择的逃生路线应该是最安全的路线(即其太空服损坏最少的那条路线)。注意,如果XPTO的能量达到零,XPTO将会消亡。
如果有多种可能的解决方案,请选择使用最少步骤数的解决方案。如果至少有两个扇区具有相同步数(X1,Y1)和(X2,Y2),则选择第一个,如果X1 < X2或者X1 = X2和Y1 < Y2。
约束Ë≤30000衣服的起动能量
0≤w ^≤500的矩形的宽度
0≤ħ≤500矩形的高度
X < W上的起始X位置
ÿ < H起始Y位置
0≤D≤10000各区段持续受损
输入
给出的第一个数字是测试用例的数量。每个案例将包括一条与整数E,X和Y的线。下面的线将具有整数W和H.下面的线将保持包含太空服在对应扇区中遭受损伤D的矩阵。请注意,对于计算机极客来说,情况经常如此,(1,1)对应于左上角。
输出
如果有一个解决方案,输出将剩余能量,出口部门的X和Y坐标的,这将导致Rodericus安全路由的步数。如果没有解决办法,那句再见残酷的世界!将被写入。
采样输入
3
40 3 3
7 8
12 11 12 11 3 12 12
12 11 11 12 2 1 13
11 11 12 2 13 2 14
10 11 13 3 2 1 12
10 11 13 13 11 12 13
12 12 11 13 11 13 12
13 12 12 11 11 11 11
13 13 10 10 13 11 12
8 3 4
7 6
4 3 3 2 2 3 2
2 5 2 2 2 3 3
2 1 2 2 3 2 2
4 3 3 2 2 4 1
3 1 4 3 2 3 1
2 2 3 3 0 3 4
10 3 4
7 6
3 3 1 2 2 1 0
2 2 2 4 2 2 5
2 2 1 3 0 2 2
2 2 1 3 3 4 2
3 4 4 3 1 1 3
1 2 2 4 2 2 1
样本输出
12 5 1 8
Goodbye cruel world!
5 1 4 2
基本上,我认为我们必须做一个改进Dijkstra,其中节点之间的距离是衣服的能量(和我们必须减去它,而不是像距离正常那样总结),并且步骤是沿着路径进行的......步骤。与bester二项式(能源,num_Steps)pos是我们的“出路”。
重要提示:XPTO显然不能在对角线上移动,所以我们必须删除这些情况。
我有很多想法,但我有实现它们这样的问题......
可能有人请帮我想这个跟一些代码,或者至少,想法?
我完全错了吗?
好吧,伙计们,我知道,我同意。我在努力,慢慢地,但我是! 只是一个问题:我必须找到一条出路,EXIT是矩形边缘的某个位置,所以我可以在矩形的极限内(即possbile EXIT)从开始到每个节点进行DFS,不管步数是多少(我只是在寻找从START到EXIT的路径,然后我将添加step约束)? 我必须了解如何从START开始到EXIT的其中一个...如果我使用Dijsktra,DFS我不知道,在我的脑海里真是太乱了! – neverMind 2010-04-13 22:45:50