摘要: 二分图匹配 二分图 1.1 定义 二分图,又称二部图,是一类结构特殊的图.它的顶点集可以划分为两个互不相交的子集,使得图中的每条边都连接这两个集合之间的一对点,而不会连接同一集合内部的点。 1.2 判定 判定一个图是否是二分图,可以用 DFS/BFS 染色法: 从任意点出发,将其染成黑色,相邻点染成 阅读全文
posted @ 2026-08-19 14:05 宰杀方向盘 阅读(7) 评论(0) 推荐(0)
摘要: 在一段时间的分块相关学习过程中,我不出意料遇到了学习分块一定会遇到的问题——超时,于是我就开始了莫名其妙的调试和修改工作,下面列出最有代表性一道题。 首先我要积累两个经验 #define in long long会大幅增加常数,导致TLE STL的.clear()清空是O(n)的,很耽误时间,STL 阅读全文
posted @ 2026-07-23 14:14 宰杀方向盘 阅读(11) 评论(0) 推荐(0)
摘要: 概念 最近公共祖先指两个节点在一棵树上深度最大的公共的祖先节点,即这两个点在这棵树上距离最近的公共祖先节点。 Tarjan 算法介绍 使用倍增思想和动态规划。 基本思路: 任选一个点为根节点,从根节点开始。 遍历该点 u 所有子节点 v ,并标记这些子节点 v 已被访问过。 若是 v 还有子节点,返 阅读全文
posted @ 2026-07-20 21:18 宰杀方向盘 阅读(10) 评论(0) 推荐(0)
摘要: #include<bits/stdc++.h> using namespace std; const int N = 1e5+10; int n, m, r, p, w[N]; int tot, h[N], e[2*N], nxt[2*N]; void add(int u, int v){ nxt[ 阅读全文
posted @ 2026-07-20 21:17 宰杀方向盘 阅读(18) 评论(0) 推荐(0)
摘要: #include<bits/stdc++.h> using namespace std; const int N = 1e7; int n, top = 1; struct Node{ int lc = 0, rc = 0, s = 0; } tr[N]; void pushup(int u){ t 阅读全文
posted @ 2026-07-20 21:17 宰杀方向盘 阅读(12) 评论(0) 推荐(0)
摘要: #include<bits/stdc++.h> using namespace std; const int N = 4e5+10; int n, idx, Y[2*N]; struct line{ long long o, u, z; int b; bool operator < (line x) 阅读全文
posted @ 2026-07-20 21:16 宰杀方向盘 阅读(12) 评论(0) 推荐(0)
摘要: 基于trie和kmp fail指针 学习过程: oi wiki理解思路,听y总讲代码 模板一:acwing代码过不去,是要在求答案时跳fail的时候,打标记,每个点只走一次 模板二:连trie图 模板三:拓扑序求答案,拓扑排序不用单独写,build里顺手求一下就可以 阿狸打字机:理解fail树的思路 阅读全文
posted @ 2026-07-20 21:15 宰杀方向盘 阅读(14) 评论(0) 推荐(0)
摘要: 感觉是一道很巧妙的题。 首先,由于仅当 \(m = n\) 时异或值为 \(0\),所以对于 \(m < n\) 的情况,一定无法异或得出 \(0\),故答案为 \(0\)。 接下来考虑其他情况,本题题意相当于构造一个自然数 \(k\),使得 \(k > m\) 且 \(k \oplus n\) 最 阅读全文
posted @ 2026-07-20 21:14 宰杀方向盘 阅读(9) 评论(0) 推荐(0)
摘要: CSP2025 has finished. NOIP2025 is coming. 本次考试整体状态不佳—— J $100+100+100+64 = 364pts $ 1= HL rk5 不考虑串考场导致的时间差,T1+T2 30min AC T3用了30min思考dp, 思考失败 忽然灵光乍现,贪 阅读全文
posted @ 2026-07-20 12:54 宰杀方向盘 阅读(20) 评论(0) 推荐(0)