
搜索
Rem_Inory
这个作者很懒,什么都没留下…
展开
-
【题解】codevs P1108 方块游戏
搜索+自行模拟,注意边界情况限制xy的范围#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib>#include<cstring>using namespace std;int m,n;char color[55][55];bool...原创 2018-07-29 07:26:51 · 223 阅读 · 0 评论 -
【题解】洛谷P3958 奶酪(并查集 搜索)
想了半天写了一个搜索,不过里面用到了并查集的思想。。。结果很显然我TLE了6个点。看了题解之后发现自己傻了。。所以就把搜索去掉,单用并查集解决不就完事儿了qaq#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib>#include<cstri...原创 2018-08-25 19:09:52 · 310 阅读 · 0 评论 -
【题解】codevs P2594 解药还是毒药(bfs 状压)
https://blog.youkuaiyun.com/qq_36799943/article/details/76919180思路非常清晰。。原创 2018-08-20 10:33:56 · 294 阅读 · 0 评论 -
【题解】洛谷P2324 骑士精神(A*算法 启发式搜索)
第一眼看到就可以枚举空白格子位置然后跑bfs,处理一些细节就可以,这样的话最优能30分。为了让程序跑的更快,我们可以在读入队列某个元素时记录其和目标状态对应位置不同的数量,因为交换一下最多能消去两个格子(第一次),其他情况最多能消去一个格子,所以当前的步数+数量>16或者当前步数>=15(这里可以为等于因为在其前面已经有循环保证如果步数为15就输出结果并return)。这样还有一个...原创 2018-08-19 22:32:19 · 925 阅读 · 0 评论 -
【题解】洛谷P2831 愤怒的小鸟(搜索 状压)
#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;int t;int m1,m2;struct pig{ do...原创 2018-08-19 21:20:45 · 289 阅读 · 0 评论 -
【题解】洛谷P1433 吃奶酪(dfs)
首先处理出每两个点之间的距离,然后从起点开始遍历所有点,找出最大值即可,注意坐标不一定是整数。。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>using namespace std;int n;double maxx=1e9;struct p...原创 2018-08-13 21:20:38 · 648 阅读 · 0 评论 -
【题解】洛谷P1434 滑雪(记忆化搜索)
枚举每一个点,从每一个点开始扩展求出每个点的最大长度,最后求最大长度的最大值。这是一般的dfs的想法,在此题中可以得90分。想要通过最后一个点,我们需要使用记忆化搜索。开一个数组记录每个点的最大长度,当dfs到该点时就返回这个点的最大长度,可以节省非常多的时间。代码如下#include<cstdio>#include<iostream>#include<al...原创 2018-08-13 21:18:25 · 347 阅读 · 0 评论 -
【题解】vijos P1029 晴天小猪历险记之number(bfs 康托展开)
显然这道题可以用bfs解决。我们可以首先得到8种横竖斜之和均为15的情况,然后给它们赋予一个值,从这八种情况扩展,开一个dis数组记录某种情况所需要的步数,然后扩展出哪种就给哪种步数+1就行了。但关键是dis数组的范围,倘若按照从数字编号,dis是肯定存不下的。我们注意到9个数的全排列是9!种,362200种可能,这个数还是比较小的,所以我们可以考虑把情况压缩成这种状态,但如何操作呢?这里就要用到...原创 2018-08-13 16:52:29 · 1019 阅读 · 0 评论 -
【题解】洛谷P2296 寻找道路(最短路 bfs)
这道题理论上用bfs是可以解决的,但要判断的条件比较多。看到数据范围后,我决定还是用最短路来解决更加方便。思路就是我们要处理出不能用的点,然后跑最短路时判断如果出现这个点跳过就好了。判断不能用的点,我们可以从终点开始扩散,将到达的每一个点打上标记。这样我们就可以初步找出从起点出发进入某个点是死胡同的情况。处理出这些点后,我们再从起点出发,对每一个打过标记的点进行操作,如果打过标记的点扩展出...原创 2018-08-12 19:56:09 · 465 阅读 · 0 评论 -
【题解】洛谷P1731 生日蛋糕(dfs,剪枝)
https://blog.youkuaiyun.com/BeNoble_/article/details/53201146去掉最大体积和第一个剪枝应该也能过妙啊原创 2018-08-02 20:33:51 · 324 阅读 · 0 评论 -
【题解】洛谷P1443 马的遍历
1.注意输出格式 printf("-5d")代表左对齐,空5格。2.team数组要开的大点。。否则会WA或者RE一些点。3.结构体来存team数组,最后要判断到不了输出-1好像也没啥了。。。#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>...原创 2018-08-11 22:10:20 · 280 阅读 · 0 评论 -
【题解】vijos P1206 coVH之再破难关
这道题可以用bfs解决。对于判重我们可以将读入的图看做二进制数字,将其转化为十进制,记录下来是否访问过即可。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;int mapp[5][5];struct n...原创 2018-08-11 22:07:07 · 371 阅读 · 0 评论 -
【题解】洛谷P1979 华容道(bfs)
这道题目注意反数组和dx与dy数组应对应#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib>#include<cstring>#define inf 1e9using namespace std;const int maxm=1...原创 2018-08-02 18:49:33 · 364 阅读 · 0 评论 -
【题解】洛谷P1074 靶形数独(dfs)
这道题最好想到的就是深搜的操作,然而看到数据范围,我们还是要对深搜本身和一些剪枝方法进行优化。首先打表将得分数组记录下来,一开始的思路是dfs每个格子,当指针到82时停下来。手写判断函数,对是否在同一行、是否在同一列、是否在同一个宫进行判断(一开始用的是循环 这里可以优化)。由于读入格子时我们可以算出横纵坐标, hang=(x-1)/9+1; lie=(x-1)%9+1;如果有数...原创 2018-07-29 22:17:17 · 506 阅读 · 0 评论 -
萌彩T1
原创 2018-11-02 21:59:36 · 394 阅读 · 0 评论