现在的位置: 首页 > 综合 > 正文

POJ1208 — The Blocks Problem

2013年09月06日 ⁄ 综合 ⁄ 共 3650字 ⁄ 字号 评论关闭

POJ1208 ,来自UVA101题,注意读懂题目意思:

move a onto b:   先将a和b上的积木放回原来的位置,然后再将a放到b上面
move a over b:   先将a上的积木放回到原来的位置,然后将a放到b所在积木堆的顶部(b上的积木不动)
pile a onto b:   先将b上的积木放回原来的位置,再将a和a上的积木放到b上
pile a over b:   将a本身和其上的积木一起搬到到b所在的那堆积木之上

我作为四段读的,str1,num1,str2,num2。但判断的时候,str1只需要判断str[0],str2只需要判断str2[1]就可以区分命令了.

刚开始题目给的两个例样输出。程序对的,提交后RE,用clock测试了下,发现不可能超时。估计遇到了死循环,于是写了个随机生成测试数据的程序,按照逐步缩小范围的方法,最终确定了问题:原来在确定本题一个关键上——命令有可能是无效的(1.num1和num2相等。2.num1,num2在同一堆上)。我的BUG就在判断同一堆上了。少写了个一半,不严密。修改后AC了。

但奇怪的是POJ AC, UVA不能AC? 什么问题?随机生成1000组数据都可以测试出来的。

额,纠结于UVA, 这个系统很苛刻。。

下面是数据生成器:

抱歉!评论已关闭.