搜索
搜索之类的算法
zipper112
这个作者很懒,什么都没留下…
展开
-
Dance Links(板子)
struct DLX { int n, m, cnt; int U[maxnode], D[maxnode], R[maxnode], L[maxnode], Row[maxnode], Col[maxnode]; int H[MAXM], S[MAXM]; int ansd; void init(int _n, int _m){ n = _n; m = _m; for (int i = 0; i <= m;原创 2020-07-07 09:16:36 · 169 阅读 · 0 评论 -
多源bfs
题目一 题意: 定义一种数为Lunlun数,这种数的任意相邻的位上的数ai,ai+1a_i,a_{i+1}ai,ai+1都有abs(ai−ai+1)≤1abs(a_i - a_{i+1})\le1abs(ai−ai+1)≤1,例:121001,现在给你一个正整数k让你求,从1开始的第k个Lunlun数 思路: k的范围很小,所以可以用多源bfs,首先要先确定范围即第1e5个数最大可能是多少...原创 2020-04-05 15:40:54 · 464 阅读 · 0 评论 -
双向BFS
作用 双向BFS本质还是bfs,不过是在已知起点和终点的状况下从起点和终点两头开始bfs,这样可以节省时间避免单bfs时所带来的组合爆炸,而且在解决起点和终点均可移动且移动速度不同等鬼畜问题时有奇效 模板 #include<bits/stdc++.h> #define ll long long queue<类型> qu[2]; bool bfs(int id){ int s = qu[id].size();//每次只扩展当前这一层 while(s--){原创 2020-07-03 10:23:47 · 347 阅读 · 0 评论