为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

USACO/snail

来自NOCOW
跳转到: 导航, 搜索
 这篇文章可以证实是由NOCOW用户原创,不存在任何版权争议。
 本文作者同意以GNU FDLCC-by-saGNU LGPL(如果适用)三种版权发布此文章(不包括翻译文章中属于原始所有者的部分版权)。
 如果你修改了这篇文章并且不同意用GNU FDL以外的版权发布,可以换一个版权模板或者移除此模板。
这是USACO Chapter 5 .2中的OI题目Snail Trail介绍及题解,参见 翻译C语言代码C++语言代码Pascal语言代码


[编辑] 问题分析

直接深搜就行了。每次沿着一个方向一直扩展直到碰到障碍物或者到达边界或者碰到已经走过的点。中间记录一下所有走到过的点,同时记录路径长度。当碰到已经走过的点时结束,判断一下路径长度与最优解的大小,如果更优则替换。

注意题目中说的“当 N 〉26 时,输入文件就不能表示 Z 列以后的路障了”,这句话不用专门理他。其实就是从A的ascii码开始向后顺延,不管是什么字母就行了。



恩其实“当 N 〉26 时,输入文件就不能表示 Z 列以后的路障了”的意思是:路障的列数不会超过26 赞同


本来打算好好优化一下,没想到交了个朴素,然后……

USER: Cheng YuFeng [onetwog2]
TASK: snail
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 2928 KB]
   Test 2: TEST OK [0.000 secs, 2928 KB]
   Test 3: TEST OK [0.000 secs, 2928 KB]
   Test 4: TEST OK [0.000 secs, 2928 KB]
   Test 5: TEST OK [0.000 secs, 2928 KB]
   Test 6: TEST OK [0.000 secs, 2928 KB]
   Test 7: TEST OK [0.000 secs, 2928 KB]
   Test 8: TEST OK [0.000 secs, 2928 KB]
   Test 9: TEST OK [0.000 secs, 2928 KB]
   Test 10: TEST OK [0.000 secs, 2928 KB]
   Test 11: TEST OK [0.000 secs, 2928 KB]
   Test 12: TEST OK [0.108 secs, 2928 KB]

All tests OK.
YOUR PROGRAM ('snail') WORKED FIRST TIME!  That's fantastic
-- and a rare thing.  Please accept these special automated
congratulations.

数据太弱了。 Mr.Phone 15:42 2011年8月27日 (CST)

[编辑] 参考代码

C

C++

Pascal

个人工具