当前位置: 首页 > news >正文

noip板子

倍增法lca

const int N = 500010;
int n, m, s;
vector<int> g[N];
void addeg(int u, int v) {g[u].push_back(v);g[v].push_back(u);
}int d[N], anc[N][25];
void dfs(int u, int fa) {d[u] = d[fa] + 1;for (int i : g[u]) {if (i == fa) continue;anc[i][0] = u;dfs(i, u);}
}
void initlca() {for (int i = 1; i <= 21; ++i) {for (int j = 1; j <= n; ++j) {anc[j][i] = anc[anc[j][i-1]][i-1];}}
}
int qry(int u, int v) {if (d[u] < d[v]) swap(u, v);for (int i = 21; i >= 0; i --) {if (d[anc[u][i]] >= d[v]) {u = anc[u][i];}}if (v == u) return v;for (int i = 21; i >= 0; i --) {if (anc[v][i] != anc[u][i]){v = anc[v][i];u = anc[u][i];}}return anc[u][0];
}

Kruakal求最小生成树

const int N = 5010, M = 200010;
struct eg {int u, v, w;
} es[M];
bool cmp(eg a, eg b) {return a.w < b.w;}
int f[N], n, m;
int find(int x) {return f[x] == x ? x : f[x] = find(f[x]);
}
int cnt, ans;
void kruskal() {sort(es+1, es+m+1, cmp);for (int i = 1; i <= m; i ++) {int u = find(es[i].u), v = find(es[i].v);if (u == v) continue;ans += es[i].w;f[u] = v;cnt++;}
}

Dijkstra

const int N = 100010;
struct nd {int u, dis;bool operator<(const nd &a) const {return dis > a.dis;}
};
struct eg {int v, w;
};
priority_queue<nd> q;
vector<eg> g[N];
int n, m, dis[N], s;
bool vis[N];
void addeg(int u, int v, int w) {g[u].push_back((eg){v, w});
}
void dij(){fill(dis+1, dis+n+1, INT_MAX);dis[s] = 0;q.push((nd){s, 0});while (!q.empty()) {nd now = q.top(); q.pop();if (vis[now.u]) continue;vis[now.u] = 1;for (eg i : g[now.u]) {if (dis[i.v] > (i64)dis[now.u] + i.w) {dis[i.v] = dis[now.u] + i.w;q.push((nd){i.v, dis[i.v]});}}}
}
http://www.jsqmd.com/news/54376/

相关文章:

  • Webstorm常用配置
  • 东方博宜OJ 1119:求各位数字之和 ← 循环结构
  • 2025.11.28
  • 10个免费查重降重工具分享,降AIGC率工具
  • Linux_Socket_浅谈UDP - 教程
  • Jetlinks 物联网平台 开源版学习源码分析
  • Java 线程池深度解析:原理、策略与生产环境调优指南
  • Tita CRM一体化平台:破解销售管理五大痛点,实现业绩可持续增长
  • NOIP 算法合集
  • 会赢吗
  • 直接通过electron创建项目
  • 东方博宜OJ 1246:请输出n行的9*9乘法表 ← 嵌套循环
  • 使用cnpm(中国镜像源的npm客户端)来安装electron
  • 2025年11月电动叉车销售企业避坑指南:市场主流品牌横向对比
  • 2025年11月中国电动叉车销售公司推荐榜单:主流品牌综合对比分析
  • 详细介绍:Qt样式深度解析
  • 文档抽取科技:利用自然语言处理技术自动识别和提取合同、判决书等法律文书中的关键信息,并将其转化为结构化数据
  • 替代模型简化复杂物理仿真任务
  • U636459 网格
  • NOIP day -1 笔记
  • 2025-11-28 用后端java的架构来类比 NestJS 的各个部分(deepseek)
  • 2025-11-28 用前端react的架构来类比 NestJS 的各个部分(deepseek)
  • java真分页查询两个库的数据,合并成一个结果集分页查询
  • 【Microsoft Learn】Microsoft Azure 服务 - 教程
  • U636458 蛇
  • 7款AI论文写作辅助必备工具:毕业论文高效完成全攻略
  • MySQL语法之用alter增加删除列
  • 【JUnit实战3_17】第九章:容器内测试(下)——Arquillian 框架的用法简介 - 实践
  • 详细介绍:Web安全深度实战:从漏洞挖掘到安全防护
  • 敬请人(自己)采/警示后人(自己)合辑