bfs
圣人惠
这个作者很懒,什么都没留下…
展开
-
UVA - 1599 Ideal Path
bfs两次。第一次处理路径长,第二次选边#include<iostream> #include<string> #include<cstdio> #include<set> #include<stack> #include<list> #include<vector> #include<queue> #include<algorithm> #include<cstring> #include<cma原创 2017-05-05 23:12:17 · 250 阅读 · 0 评论 -
UVA - 1601 The Morning after Halloween
由于条件中有一条“每2*2的区间内至少有一个#”,所以空地的个数比较有限。于是就想到将空地离散成点,这样就可以比较高效地进行bfs了(主要还是储存,如果不离散的话储存和判重会很恶心)。 本题也可以使用双向bfs进行优化,不过既然给了12s的限时,那就没有这个必要了。 还有题目给的人数是1~3不等,如果要分开算的话会比较麻烦,将不存在的人放在一个起点和终点相同的地方一起参与bfs,就可以省很多事情原创 2017-05-05 23:18:04 · 282 阅读 · 0 评论 -
ZOJ - 3814 Sawtooth Puzzle
这道题最恶心的地方就是预处理了。辣鸡xcode都没法完整读入整张图(可能是没配置好),必须文件输入。 预处理的时候将每一块拼图旋转4次,和结果对比,获取哪几个旋转的情况满足条件,这样就将问题抽象化。 旋转的时候要用dfs或者bfs看那几块会跟着一起转。一开始写的时候犯二了先改变了当前块的状态再去找其他块,连样例都过不去(也还好连样例都过不去,不然debug起来真的恶心)。 总的可能性总数为4^原创 2017-05-05 23:23:35 · 245 阅读 · 0 评论