回溯法解决排列型枚举
1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <bitset>using namespace std;const int N = 10;int n;int ans[N];bitset<N> vis;void dfs(int dep){ if(dep > n) { for(int i = 1;i <= n;i ++) cout << ans[i] << " \n"[i == n]; return ; } for(int i = 1;i <= n;i ++) { if(vis[i]) continue; vis[i] = true; a ...
最大公约数(GCD)1234int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b);}
试除法分解质因数123456789101112void divide(int x){ for(int i = 2;i <= x / i;i ++) { if(x % i == 0) // i 一定是质数 { int s = 0; // 记录同一个质数出现的次数 while(x % i == 0) x /= i, s ++; } } if(x > 1) cout << x << " " << 1 << endl; // 当x最后还大于1说明剩下的是大于sqrt(x)的质因数}
例题
12345678910111213141516171819202122232425262728 ...
涉及的知识有很多,这里罗列出来:
这里涉及到的所有数据结构的时间复杂度都为$O(n)$
并查集
单调栈
单调队列
易错点(我自己的)并查集
并查集不使用 root() 函数来找祖先,虽然已经进行 路径压缩,但是防止写错还是要用 root() 来找根
老是忘记 判断自环!!!!!!! if(a == b) return ;
单调栈
记得判断当前的 top 是否有效,无效的话要设为 $0$ 或者看题目要求,一般输出 $-1$ 或者定义为
数组边界($0$ 和 $n+1$)
单调队列
第一:记得 维护下标合法性,这个老是忘记
第二:记得一定一定一定要 清空队列,不然下一个判断受影响
第三:一定要 形成滑动窗口 的时候才 记录答案
第四:输出的时候也是 一定要有滑动窗口(括弧从 k 开始)才输出哈哈哈哈哈哈哈哈哈哈
并查集详情见: 并查集 - OI Wiki
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#i ...
进制转换相关模板1.将任意进制转换成十进制
例题:
这里的K是16,因为题目要求我们转换为16进制
Ac_code:
12345678910111213141516171819202122232425#include <iostream>using namespace std;const int N = 10;using ll = long long;int a[N];int main(){ string s = "2021ABCD"; for(int i = 0; i < s.length();i ++) { if('0' <= s[i] && s[i] <= '9') a[i + 1] = s[i] -'0'; else a[i + 1] = s[i] - 'A' + 10; } ll x = 0; for(int i = 1;i <= s.length(); i ++) ...
一、CloudFlare:网络安全和性能优化的托管平台
Cloudflare 是一家提供网络安全、性能优化服务的平台,核心功能包括:
CDN 加速:在全球部署节点,缓存网站静态资源,缩短用户访问延迟。
智能 DNS 解析:提供高效的 DNS 服务,支持智能解析,根据用户位置返回最优 IP。
安全防护:集成 Web 应用防火墙(WAF)、DDoS 防护等功能,抵御恶意攻击。
反向代理:用户请求先经 Cloudflare 服务器转发至源站,隐藏源站真实 IP,同时提供流量优化、缓存管理等能力
二、Versel:前端开发者的部署神奇
Vercel 专为前端应用和静态网站设计,优势如下:
一键部署:与代码仓库(如 GitHub)深度集成,推送代码自动触发部署。
域名管理友好:支持自定义域名,简化域名配置流程,自动处理 SSL 证书。
边缘网络优化:通过边缘网络分发内容,提升全球用户访问速度。
三、问题出现1.问题场景复现 在将我的域名 wiretender.top 托管到 CloudFlare 平台之后,而且先前我已经在 Versel 配置过相关的自定义域名,根据我的 GitH ...
动态规划(简单DP)
1234567891011121314151617181920212223242526272829303132#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int N = 1005;int f[N][N], w[N][N];void solve(){ memset(f, 0, sizeof f); int r, c; cin >> r >> c; for(int i = 1;i <= r;i ++) for(int j = 1;j <= c;j ++) cin >> w[i][j]; f[1][1] = w[1][1]; for(int i = 1;i <= r;i ++) for(int j = 1;j < ...
第一题:模拟
代码:
1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;const int N = 1010;int n, Q;int a[N][N], b[N][N], c[N][N];int main(){ scanf("%d%d", &n, &Q); int res = 0; while (Q --) { int x, y, z; scanf("%d%d%d", &x, &y, &z); a[x][y] ++; b[y][z] ++; c[x][z] ++; if (a[x][y] >= n) res ++; if (b[y][z] >= n) res ++; if (c[x][z] >= n) ...
滑动窗口
123456789101112131415161718192021222324252627282930313233343536373839404142#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#define x first#define y secondusing namespace std;const int N = 1e5 + 10;typedef pair<int, int> PII;int n, d, k;PII records[N];int cnt[N];bool st[N];int main(){ scanf("%d%d%d", &n, &d, &k); for(int i = 0;i < n;i ++) scanf("%d%d", &records[i].x, &records[i].y); ...
枚举题目:
代码:
123456789101112131415161718192021222324252627282930#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int N = 10010;const int INF = 100000000;int n, a[N];int main(){ cin >> n; for(int i = 1;i <= n;i ++) cin >> a[i]; int ans = 0; for(int i = 1;i <= n;i ++) { int min_v = INF, max_v = -INF; for(int j = i;j <= n;j ++) { min_v = min(min_ ...
三维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 ...