搜索
会飞的小蛇
这个作者很懒,什么都没留下…
展开
-
(搜索)洛谷P1037产生数
洛谷P1037产生数思路:我们很容易看出结果是每个位数能变化的次数(包括他自身)的乘积。然后我就用bfs找每个位数能变化几次,TLE了。对于dfs并不擅长,看来其他的题解,发现floyd也可以解决问题。floyd可以理解为i是否能通过转换到k之后转换到j。最后发现答案最大时1030,肯定会超long long。写一个高精度乘低精度就能行了。代码:#include<bits/st...原创 2020-02-02 11:05:21 · 206 阅读 · 0 评论 -
(bfs)洛谷P1363幻象迷宫
洛谷P1363幻象迷宫思路:刚开始,我的思路是能够再次找到S点,就能无限走下去。然而看反例:5 5######...##.#S##...######很显然,这不能走出去。5 5#####..#..#S#.#..#..#####与第一个样例相似。那么又想到走到的不是本来的S,而是其他图的S。然后就想是不是两层就可以了,他本身是在第一层,然后到边上后就到了第二层...原创 2020-01-30 22:34:59 · 226 阅读 · 0 评论 -
(BFS+状压)AcWing1131拯救大兵瑞恩
AcWing1131拯救大兵瑞恩思路:先想到是用一个结构体存一个格子四周的情况和钥匙的情况,然后每次遇到门的时候要把自己有的钥匙和需要的比较。但后来想到钥匙最多只有十个,所以可以用状态压缩,每个点的钥匙和自己的钥匙可以用二进制数表示,拿钥匙就用按位或;遇到门就用按位与判断。然后我又用结构体记录一个点四周是否有墙,结果愉快的MLE了。后来把数据自己测的时候发现跑不出结果。在后面的一个小时内,我...原创 2020-01-21 21:31:17 · 297 阅读 · 1 评论 -
(BFS)POJ3126Prime Path
POJ3126Prime Path题意&思路:给两个数,又第一个数改变到第二个数的奇数路径最少是多少。每次只能改变一位,且不含前导0,每次改变后的数都要为奇数。先把素数筛出来,然后按位子改变bfs即可,第一位不能为0以及最后一位一定不可能是偶数。代码:#include<iostream>#include<stdio.h>#include<std...原创 2020-01-08 14:13:34 · 319 阅读 · 0 评论 -
(BFS)HDU1195Open the Lock
HDU1195Open the Lock题意&思路:给你两个4位的数字,对每位数字可以+1或者-1,1-1变成9,9+1变成1,相邻两位还可以交换位置,最少需要多少步可以把第一串数字改成第二串。求最少的距离,用bfs暴搜所有情况。看到还可以用双向bfs做,一会补。代码:#include<bits/stdc++.h>const int N=1e4+10;const...原创 2020-01-08 13:43:39 · 176 阅读 · 0 评论 -
(搜索)单向公路[swustoj85]
(搜索)单向公路[swustoj85]题目描述某个地区有许多城镇,但并不是每个城镇都跟其他城镇有公路连接,且有公路的并不都能双向行驶。现在我们把这些城镇间的公路分布及允许的行驶方向告诉你,你需要编程解决通过公路是否可以从一个城镇到达另一个城镇。(我们规定,城镇自己跟自己可互相到达,即A可到达A).输入第一行只有一个数N,下面将跟着2N行数据. 在前N行数据中,对于每行数据,最开头一个数字n...原创 2019-11-22 16:02:15 · 182 阅读 · 0 评论 -
(BFS+回溯)迷宫问题[POJ3984]
(BFS+回溯)迷宫问题 POJ3984题目内容定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线...原创 2019-11-11 00:06:20 · 274 阅读 · 2 评论 -
(BFS)Dungeon Master
[POJ2251]Dungeon Master板子题,代码:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<string.h>#include<ctype.h>#include<queue&g...原创 2020-01-05 10:44:22 · 127 阅读 · 0 评论