摘要:
是真的乱搞. 模拟退火啥的还是太保守了( 当一个条件足够必要的时候, 它就是充分的. 随机一次概率小了, 就多随机几次. 1. luoguP8819 [CSP-S 2022] 星战 容易发现原问题就是要判断这个图是不是一棵内向基环树森林. 发现出度很难维护, 那就不要维护. 但是你发现入度是随手维护 阅读全文
摘要:
为了保证文章的整体简洁,代码就不放了。 upd: NOIP2022 上被教育了. (虽然问题在于我不会dp 1. SCC 1. luoguP2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G 考虑一个 SCC 内的所有点互相可达,我们完全可以先缩点。 那么能从其他所有点到达的 阅读全文
摘要:
## 别急, 慢慢更( [OI-wiki 图论部分](https://oi-wiki.org/graph/) 有简单的东西,也有一些奇怪的算法。 总结: 学好 Kruskal 就对了. ## 0. 一点前置习题 ### 1. luoguP4047 [JSOI2010]部落划分 实际上就是 Krusk 阅读全文
摘要:
0. 一些前置习题 1. luoguP1608 路径统计 实际上只需要开一个 cnt 记录一下到当前点的最短路有几条就行了. 跑 dijkstra 的时候, 如果是严格大于就直接把答案覆盖上, 等于就将方案数相加. if(dis[p]==dis[u]+e[i].val)ans[p]+=ans[u]; 阅读全文
摘要:
参考资料: OI-wiki 0. 一些概念 首先让我们明确几个概念. 我们定义, 通过图中所有边恰好一次的通路称为欧拉通路, 若该路为回路则称为欧拉回路. 若一个图存在欧拉回路, 则称该图为欧拉图. 若不存在欧拉回路但存在欧拉通路, 该图成为半欧拉图. 无向图 (半) 欧拉图判定: 一个连通图是无向 阅读全文
摘要:
学习资料 大致精神是, 我们先对原来的树进行后序遍历重编号, 然后定义状态 $f(i,k)$ 为选取前 $i$ 个物品, 背包容量为 $k$ 的最大价值. 后序遍历的好处是, 每次新加的点都是子树的根, 并且子树内的顺序在值域上连续. 于是讨论是否选择当前的点 $i$, 状态转移方程即为: $$f( 阅读全文
摘要:
马上要 CSP 了, 急了急了. upd: 关于 CSP: 它死了. 对 luogu 题目难度的评价: 绿>蓝. 1. P3147 262144 P 奇怪的 dp 题. 考虑定义状态 $f(i,k)$ 表示, 从位置 $i$ 开始能合并出数 $k$ 的区间为 $[i,f(i,k))$. 容易发现 $ 阅读全文
摘要:
从 这里 看到的. 假设我们有一棵 \(n\) 个点的带权树 (边权和为 \(\sum e\)), 我们随便选取一个点 \(r\) 作为根. 记 \(d_u\) 为点 \(u\) 的度数, \(\text{dis}(u,v)\) 为 \(u\) 到 \(v\) 的距离. 则我们有结论: \[\sum 阅读全文
摘要:
众所周知, 如果我们用正常的分块做单点加区间求和, 时间复杂度高达 $O(1)-O(n^{1/2})$ (修改-询问). 然后你发现这太慢了. 于是你考虑改一下分块的大小. 我们更改块的大小为 $n^{2/3}$, 整块的复杂度成功变成了 $O(n^{1/3})$! 但是散块的复杂度变成了 $O(n 阅读全文
摘要:
出处是 lyd 的蓝书。 有向图上的必经点、必经边问题比较复杂,我们只讨论给定起点和终点 $s,t$ 的情况。 因为 DAG 的优秀性质,考虑使用乘法原理。 首先我们在原图上做 dp 预处理出 $s$ 到其他点的走法的数量 $sn(u)$,再在反图上做 dp 预处理出图上的点到 $t$ 的走法的数量 阅读全文