Algorithm Google CodeJam“;“过马路”;混乱的测试用例
我有一个关于这个代码阻塞问题的问题: 我实现了动态规划解决方案,并在“B-small-practice.in”(单击“Solve B-small”获取文件)上比较了运行我的程序和第一名优胜者程序的结果 我的程序对所有100个测试用例给出正确答案(与第一名优胜者的程序相同),只有两个例外:#5和#6 让我们看一看案例#5:Algorithm Google CodeJam“;“过马路”;混乱的测试用例,algorithm,math,dynamic-programming,Algorithm,Math,Dynamic Programming,我有一个关于这个代码阻塞问题的问题: 我实现了动态规划解决方案,并在“B-small-practice.in”(单击“Solve B-small”获取文件)上比较了运行我的程序和第一名优胜者程序的结果 我的程序对所有100个测试用例给出正确答案(与第一名优胜者的程序相同),只有两个例外:#5和#6 让我们看一看案例#5: 有4个十字路口。我的答案是“17”。正确答案是“12”。我不明白怎么可能得到“12”;当我尝试手动操作时,我能得到的最好结果是“17”。成本为“12”的路径是什么 输入可转换为
有4个十字路口。我的答案是“17”。正确答案是“12”。我不明白怎么可能得到“12”;当我尝试手动操作时,我能得到的最好结果是“17”。成本为“12”的路径是什么 输入可转换为交叉口的以下计时,其中NS表示允许行人穿越北部或南部的时间,EW表示允许行人穿越东部或西部的时间
A -- NS:0 EW:1 NS:2 EW:3
B -- NS:0-4 EW:5 NS:6-15 EW:16 NS:17-26
C -- NS:0-9 EW:10 NS:11-20
D -- EW:0-9 NS:10 EW:11-20
很容易看出,如果您在时间16时沿EW方向穿过交叉口B,您将以17时结束。但关键是你永远不必在EW方向穿过B
从时间12开始向后计算,解决方案必须在时间11沿NS方向穿过交叉点B。从那里很容易回到起点
好的,谢谢。我错误地认为,只有向上和正确的行动是需要的最佳解决方案。有趣的是,在100个测试用例中,只有两个需要这些“向后”移动。
A -- NS:0 EW:1 NS:2 EW:3
B -- NS:0-4 EW:5 NS:6-15 EW:16 NS:17-26
C -- NS:0-9 EW:10 NS:11-20
D -- EW:0-9 NS:10 EW:11-20