广度优先搜索
文章平均质量分 63
徐州牧
这个作者很懒,什么都没留下…
展开
-
poj解题报告——3126
这题打表就挺好,大致题意:给定两个四位素数a b,要求把a变换到b,变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数与前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复,求从a到b最少需要的变换次数。无法变换则输出Impossible。 代码如下 #include #include int vir[10010],fa[10原创 2014-12-21 14:58:33 · 439 阅读 · 0 评论 -
poj解题报告——3087
题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。现在输入s1和s2的初始状态 以及 预想的最终状态s12。问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1"。 单方向的搜索。变换结果是呈周期性变化的,所以要判断循环只需原创 2014-12-21 15:26:10 · 447 阅读 · 0 评论 -
poj解题报告——1426
题目大意,给出一个整数n,(1 代码如下 #include #define N 200 #define M 100 int n; __int64 que[9999999]; void bfs() { __int64 now; int head=1,tail=1; que[tail++]=1; while(head {原创 2014-12-07 18:05:23 · 422 阅读 · 0 评论 -
poj解题报告——3278
题意是这样子的,给定两个整数n和k,通过 n+1或n-1 或n*2 这3种操作,使得n==k,输出最少的操作次数。 值得注意的是,这题要剪枝,不然会超时。 代码如下 #include #include #define MAX 100001 struct Point { int x; }queue[100001]; int temp; int st原创 2014-12-07 17:15:00 · 549 阅读 · 0 评论 -
poj解题报告——3414
题目大意:有二个水壶,对水壶有三种操作,1)FILL(i),将i水壶的水填满,2)DROP(i),将水壶i中的水全部倒掉,3)POUR(i,j)将水壶i中的水倒到水壶j中,若水壶 j 满了,则 i 剩下的就不倒了,问进行多少步操作,并且怎么操作,输出操作的步骤,两个水壶中的水可以达到C这个水量。如果不可能则输出impossible。初始时两个水壶是空的,没有水。 然后这题就顺理成原创 2014-12-26 22:13:10 · 452 阅读 · 0 评论