搜索
韵意丶布丁公主
这个作者很懒,什么都没留下…
展开
-
【kuangbin带我飞】专题一 简单搜索
A-棋盘问题 dfs 1.dfs进入时打上标记,退出时清除,不需要额外的状态记录 2.可行性剪枝,减小常数 3.用r[i],c[j]表示行和列的占用情况,减小常数 #include<bits/stdc++.h> using namespace std; int n,k; char g[10][10]; int r[10],c[10]; int top,ans; pair&...原创 2018-11-04 16:24:01 · 330 阅读 · 0 评论 -
HDU 2102 判断最小的环的数量,可用并查集,这里是dfs写法
忘记考虑重边,要改成while跑到余量为0才走。 #include<bits/stdc++.h> using namespace std; #define ll long long int vis[10000+5]; int g[1000+5][1000+5]; int res=0; int n,m; void dfs(int id){ /*printf("id=%d...原创 2018-11-02 00:37:52 · 270 阅读 · 0 评论 -
【BZOJ1088】扫雷Mine dfs
据说可以从头两格确定状态,但是我没有多想,直接就上了dfs /* 1.在一头一尾加入空格?不行,还是要特判,或者加0或1? 2.据说确定前两格检验就行了,不过我还是深搜? 3.默认不需要取模吗?废话深搜(暴力)假如要取模早就T了,先试一下暴力深搜对不对 4.用x1、x2、x3表示格子附近的第二行的状态 */ #include<bits/stdc++.h> using namesp...原创 2018-11-04 10:46:31 · 173 阅读 · 0 评论 -
【kuangbin带我飞】专题二 搜索进阶
A - Eight 看起来好像在bzoj见过的?状压爆搜?一般好像爆搜都是用bfs的,有没有什么是使用进阶的搜索方法呢? H - Gap bfs+hash 应该想到bfs的,毕竟每一步都只有4种选法,最多24步?4^24肯定是太大了的,怎么就可以保证bfs可以得到结果呢?还是说要充分理解搜索的上界是一个很松的上界?用hash判重我倒是可以理解。 hash的博客:https://www.c...原创 2018-11-04 23:35:16 · 267 阅读 · 0 评论 -
搜索总结
简单搜索 bfs 1.要定义结构体数组,包含结点的位置,方便用队列管理,可以不包含时间(用vis数组记录时间) 2.vis数组-1表示不可拓展,inf表示未入队,其他非负数表示已访问(暂时不需要区别是否出队);结点入队的同时修改vis数组为t 3.用inline enqueue管理判断越界、不可拓展、已访问不用写到头秃 4.从enqueue找到一个解后立刻退出可以减少大量叶子节点 注1...原创 2018-11-07 23:30:11 · 140 阅读 · 0 评论