摘要: 我们先考虑暴力,暴力枚举每一个\(i,j\)暴力算\(\binom{i}{j}\) 时间复杂度为\(O(T*N^3)\),显然超时 然后我们发现\(N,M \le2000\) 我们考虑使用组合数的递推公式预处理\(\binom{0}{0}\)到\(\binom{2000}{2000}\)。 这里说一 阅读全文
posted @ 2025-09-30 23:32 PX侠客行 阅读(4) 评论(0) 推荐(0)
摘要: 双向搜索 这种优化可以显著降低时间空间复杂度,分为两类: 双向宽搜 相当于同时从起点和终点跑普通宽搜,两边各自扩展自己的层级。关键是要实时检查两边探索到的状态是否有交集,一旦发现交集状态就说明找到了连接路径,可以立即停止。 双向深搜 主要解决状态空间巨大的问题。思路是: 把问题状态空间分成两半 对每 阅读全文
posted @ 2025-08-14 08:35 PX侠客行 阅读(13) 评论(0) 推荐(0)
摘要: 树链剖分 什么是树链剖分 顾名思义,将一棵树分割为多个相对独立的链,以便于高效维护和处理树上的路径、子树等问题。 树链剖分有什么作用? 常用的树链剖分有重链剖分与长链剖分,这里主要介绍重链剖分。它常用于高效解决树上路径查询、子树查询、区间修改等问题,常与线段树等数据结构结合使用。 基本概念 重儿子: 阅读全文
posted @ 2025-07-02 16:57 PX侠客行 阅读(18) 评论(0) 推荐(0)
摘要: 题意 给定一张n个点,m条边的无向图 求存在多少条重边与自环 这里可以直接将边记录下来,每次读入新边时判断 1、是否与已存入的边相同(判断重边) 2、起点与终点是否相同(判断自环) #include <bits/stdc++.h> using namespace std; const int N=5 阅读全文
posted @ 2025-07-01 16:02 PX侠客行 阅读(13) 评论(0) 推荐(0)