三维BFS
一个三维数组的BFS搜索,参考下边代码即可
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <queue>using namespace std;const int N = 110; //上 下 右 左 后 前int dx[] = {0, 0, 1, -1, 0, 0};int dy[] = {0, 0, 0, 0, -1, 1};int dz[] = {1, -1,0, 0, 0, 0};struct ...
算法板子
12345678910111213141516171819202122232425262728293031323334353637#include <iostream>#include <cstdio>using namespace std;const int N = 1e8 + 9;int a[N], tmp[N];void merge_sort(int q[], int l, int r){ if(l >= r) return ; int mid = l + r >> 1; merge_sort(q, l, mid), merge_sort(q, mid + 1, r); int k = 1, i = l, j = mid + 1; while(i <= mid && j <= r) if(q[i] <= q[j]) tmp[k ++] = q[i ++]; else tmp[k ++] = q[j ++]; while(i <= mid) tmp[k ++] = ...
二分算法整数二分
和 y 总的模板一致,我们进行对二段性的分辨,然后看我们是要寻找什么值即可
12345678910111213141516171819202122232425262728293031323334#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>const int N = 2e5 + 9;int a[N], n, q;int bi_search(int x){ int l = 1, r = n; while(l < r) { int mid = l + r >> 1; if(a[mid] >= x) r = mid; else l = mid + 1; } if(a[l] == x) return l; else return -1;}int main(){ ...