c++&oi

usaco5.4.4betsy

曹利国讲的搜素例题。
结果又被虐爆了........
当时上课时貌似还是我想出了连通块的剪枝,实现起来却一塌糊涂。
果然我弱得会被任意一道搜索题虐爆。

一直在压常数,最后改成了这个非常简洁的代码。
但问题不在这里
一开始把
if(x==n&&y==1){
           if(i==n*n)
                count++;
            return ;
            }
写成了
if(i==n*n){
if(x==n&&y==1)
count++;
return ;
}
这个错误足以使之超时
——这里会走完所有 遍历所有点的走法
而事实上只需走完所有 从1,1到n,1的路径即可

更严重的问题是考虑联通块时,没有考虑边界的情况。
事实上只需把外边框标记为已走过就行了。
代码


posted on 2012-02-08 18:52 zyn.cpp 阅读(145) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿

随笔档案(57)

文章档案(13)

搜索

最新评论

阅读排行榜

评论排行榜