VsCode 缺省源
{
"FRZ": {
"prefix": "FRZ",
"body": [
"#ifdef ONLINE_JUDGE",
"#else",
"#define FRZ_29",
"#endif",
"",
"#include <bits/stdc++.h>",
"",
"using namespace std;",
"",
"using i64 = long long;",
"using u64 = unsigned long long;",
"using u32 = unsigned;",
"using i128 = __int128;",
"",
"#define PRINT(x) cout << #x << \" = \" << x << \"\\n\"",
"#define LF(i, l, r) for (int i = (l); i <= (r); i++)",
"#define RF(i, r, l) for (int i = (r); i >= (l); i--)",
"",
"int main() {",
"#ifdef FRZ_29",
" freopen(\"code.in\", \"r\", stdin);",
" freopen(\"code.out\", \"w\", stdout);",
"#endif",
"",
" ios::sync_with_stdio(0);",
" cin.tie(0), cout.tie(0);",
"",
" ",
" return 0;",
"}",
"",
"// START AT ${CURRENT_YEAR} / ${CURRENT_MONTH} / ${CURRENT_DATE} ${CURRENT_HOUR} : ${CURRENT_MINUTE} : ${CURRENT_SECOND}"
],
"description": "FRZ"
}
}
对拍
#include <iostream>
#include <cstdio>
#include <ctime>
using namespace std;
int main() {
int id = 0;
while (true) {
system("random.exe");
time_t st = clock();
system("A.exe");
time_t ed = clock();
system("bf.exe");
if (system("fc bf.out A.out")) {
printf("Case:%d, Wrong Answer, time is %.lfs\n", ++id, ed - st);
return 0;
} else {
printf("Case:%d, Accept Answer, time is %.lfs\n", ++id, ed - st);
}
}
}
数据生成基础
#include <bits/stdc++.h>
using namespace std;
int random(int n) {
return (rand() * rand() % n) + 1;
}
int random_R(int n) {
return (rand() * rand() % (2 * n) + 1) - n;
}
int main() {
freopen("z_example.in", "w", stdout);
srand(chrono::system_clock::now().time_since_epoch().count());
return 0;
}
生成一颗以 1 为根,父节点比子节点小的树
#include <bits/stdc++.h>
using namespace std;
int random(int n) {
return (rand() * rand() % n) + 1;
}
int random_R(int n) {
return ((long long)rand() * rand() % (2 * n) + 1) - n;
}
int main() {
freopen("z_example.in", "w", stdout);
srand(chrono::system_clock::now().time_since_epoch().count());
int n = random(100);
printf("%d\n", n);
for (int i = 2; i <= n; i++) {
int fa = random(i - 1);
printf("%d %d\n", fa, i);
}
return 0;
}
代码模版
-
FHQ Treap基础
struct FHQ_Treap {
int rd[N], ls[N], rs[N], val[N], sz[N], node, R;
mt19937 rnd;
FHQ_Treap() { rnd.seed(chrono::system_clock::now().time_since_epoch().count()); }
int nd(int v) {
int x = ++node;
return rd[x] = rand(), sz[x] = 1, val[x] = v, x;
}
void up(int rt) {
sz[rt] = sz[ls[rt]] + sz[rs[rt]] + 1;
}
int mer(int p, int q) {
if (!p || !q) return p | q;
if (rd[p] > rd[q]) return rs[p] = mer(rs[p], q), up(p), p;
else return ls[q] = mer(p, ls[q]), up(q), q;
}
void spl(int rt, int v, int &p, int &q) {
if (!rt) return p = q = 0, void();
if (val[rt] <= v) spl(rs[rt], v, rs[p = rt], q), up(p);
else spl(ls[rt], v, p, ls[q = rt]), up(q);
}
} t;
-
线段树基础
struct Segment {
#define ls (rt << 1)
#define rs (rt << 1 | 1)
#define mid (l + r >> 1)
int sum[N << 2], tag[N << 2], a[N];
void up(int rt) {
sum[rt] = sum[ls] + sum[rs];
}
void down(int rt, int l, int r) {
sum[ls] += tag[rt] * (mid - l + 1);
sum[rs] += tag[rt] * (r - mid);
tag[ls] += tag[rt]; tag[rs] += tag[rt];
tag[rt] = 0;
}
void build(int rt, int l, int r) {
if (l == r) {
sum[rt] = a[l];
return;
}
build(ls, l, mid); build(rs, mid + 1, r);
up(rt);
}
void upd(int rt, int l, int r, int L, int R, int v) {
lf (L <= l && r <= R) {
sum[rt] += v * (r - l + 1);
tag[rt] += v; return;
}
down(rt, l, r);
if (mid >= l) upd(ls, l, mid, L, R, v);
if (mid < r) upd(rs, mid + 1, r, L, R, v);
up(rt);
}
int query(int rt, int l, int r, int L, int R) {
if (L <= l && r <= R) return sum[rt];
down(rt, l, r);
int ans = 0;
if (mid <= l) ans += query(ls, l, mid, L, R);
if (mid > r) ans += query(rs, mid + 1, r, L, R);
return ans;
}
} t;
-
最大流
int head[N], ver[M << 1], edge[M << 1], Next[M << 1], tot = 1;
int d[N], now[N];
int n, m, s, t;
queue<int> que;
void add(int u, int v, int w) {
ver[++tot] = v, edge[tot] = w;
Next[tot] = head[u], head[u] = tot;
}
bool bfs() {
memset(d, 0, sizeof(d));
while (que.size()) que.pop();
d[s] = 1, que.push(s), now[s] = head[s];
while (que.size()) {
int u = que.front(); que.pop();
for (int i = head[u]; i; i = Next[i]) {
if (edge[i] && !d[ver[i]]) {
d[ver[i]] = d[u] + 1;
now[ver[i]] = head[ver[i]];
que.push(ver[i]);
if (ver[i] == t) return 1;
}
}
}
return 0;
}
int dfs(int u, int f) {
if (u == t || !f) return f;
int ans = 0;
for (int &i = now[u]; i; i = Next[i]) {
if (edge[i] && d[ver[i]] == d[u] + 1) {
int k = dfs(ver[i], min(f, edge[i]));
if (!k) d[ver[i]] = 0;
edge[i] -= k, edge[i ^ 1] += k;
ans += k, f -= k;
if (f <= 0) break;
}
}
return ans;
}
int dinic() {
int ans = 0;
while (bfs()) ans += dfs(s, inf);
return ans;
}
FastIO
void read() {}
template<typename T, typename... U> void read(T &x, U&...arg) {
x = 0; int f = 1; char ch = getchar();
while (ch > '9' || ch < '0') { if (ch == '-') f = -1; ch = getchar(); }
while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
x *= f; read(arg...);
}
void write() {}
template<typename T> void write(T x) {
if (x < 0) { putchar('-'), x = -x; }
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
void lwrite() {}
template<typename T, typename... U> void lwrite(T x, U ...arg) {
write(x); putchar(' '); lwrite(arg...);
}
void nwrite() {}
template<typename T, typename... U> void nwrite(T x, U ...arg) {
write(x); puts(""); nwrite(arg...);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现