每天记背
附:NOI 大纲
快读模板#
inline int read() {
long long x = 0, w = 1;
char ch = getchar ();
for (; ch < '0' || ch > '9'; ch = getchar()) if (ch == '-') w = -1;
for (; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
return x * w;
}
链式前向星#
struct Edge {
int to;
int next;
}e[maxn];
int tot;
int head[maxn];
void Add (int u, int v) {
e[++ tot].to = v;
e[tot].next = head[u];
head[u] = tot;
}
快速幂#
inline int qpow (int a, int b) {
int ans = 1, base = a;
while (b > 0) {
if (b & 1) ans *= base;
base *= base;
b >>= 1;
}
return ans;
}
dijkstra#
int n, m, s, d[N];
struct edge {
int v, w;
};
vector <edge> g[N];
priority_queue< pair<int, int> > q;
void dijkstra(int s) {
for (int i = 1; i <= n; i ++) d[i] = inf;
d[s] = 0;
q.push({0, s});
while (!q.empty()) {
auto t = q.top();
q.pop();
int u = t.second;
for (auto ed : g[u]) {
int v = ed.v, w = ed.w;
if (d[v] > d[u] + w) {
d[v] = d[u] + w;
q.push({-d[v], v});
}
}
}
}
Floyed#
for (int k = 1; k <= n; k ++)
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= n; j ++)
f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
线性筛#
int prime[maxn];
bool isPrime[maxn];
void xxs (ll n) {
int cnt = 0;
memset (isPrime, 1, sizeof(isPrime));
isPrime[1] = 0;
for (int i = 2; i <= n; i++) {
if (isPrime[i])
prime[++cnt] = i;
for (int j = 1; j <= cnt && i * prime[j] <= n; j++) {
isPrime[i * prime[j]] = 0;
if (i % prime[j] == 0)
break;
}
}
}
并查集#
int fa[maxn];
inline int get(int x) {
if (fa[x] == x) return x;
return fa[x] = find(fa[x]);
}
inline void join(int f1, int f2) {
f1 = find(f1), f2 = find(f2);
if (f1 != f2) fa[f1] = f2;
}
施工中......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)