- 2024-10-14[47] (CSP 集训) CSP-S 模拟 11
因为有人想看T3\(nk^2\)所以先发一下A.玩水注意到只有在形如下面这样的地方才会发生分叉?aa?所以\(f_{i,j}\)表示从\((1,1)\)到\((i,j)\)的矩阵中的最大路径方案数,考虑转移普通的转移是\(f_{i,j}=\max(f_{i,j-1},f_{i-1,j})\)如果\(a_{i-1,j}=a_{i,j-1}\),则有
- 2023-12-02最近公共祖先
目录倍增法求LCA倍增法实现倍增法求LCA倍增法倍增法(英语:binarylifting),顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度。这个方法在很多算法中均有应用,其中最常用的是RMQ问题和求LCA(最近公共祖先)。实现'f[x][i]'表示x向上跳\(2^i\)
- 2023-10-15CF585F Digits of Number Pi
CF585FDigitsofNumberPi更好的阅读体验观察数据范围,考虑数位DP。首先把长串中\(len\geq\lfloor\frac{d}{2}\rfloor\)的串提出来,塞进一个trie里,然后建立ACAM,然后直接DP就行了。设\(f_{i,j,0/1,0/1,0/1}\)表示当前在trie图上走了j步到达了第i个节点,是否已
- 2023-05-20拦截导弹
拦截导弹贪心策略如下所示:图一表示具体做法,图二表示证明上图的证明是指,如果最优解和贪心存在第一个地方不一样,那么因为\(a\)是\(\gex\)的最小数,所以\(b\gea\),所以这两段是可以互换的,所以最优解是可以变成贪心的。性质,\(g\)数组单调不降,证明如上图。我们可以惊奇的
- 2022-10-05P1823 [COI2007] Patrik 音乐会的等待
用单调队列维护即可,注意要考虑高度相同的情况(可以记录单调队列中相同的个数)。时间复杂度为\(O(n)\)。#include<bits/stdc++.h>usingnamespacestd;#defineintlong
- 2022-09-236th 2022/6/8 算法总结·LCA·倍增
开头的话这个算法对于大部分图论无环图题都是必备的,应多多复习大概是对于两个点的公共祖先倍增众所周知,为了找到公共祖先,最暴力的算法就莫过于一个个往上跳,直至相遇而