随笔分类 - 其他
摘要:求最大的 $2(a_{i}-a_{j}+y)|L$. 其中 $a_{i}-a_{j}$ 只可能有 $x$ 种结果. 这个显然可以用 FFT 来算可行性. 然后调和级数更新就可以了. FFT 中复数的运算什么的要注意一下,不要写错. 单位根是 $(cos(\frac{pi}{l}),i*sin(\fr
阅读全文
摘要:考场的时候智障了,写了 6k+ 的树链剖分. 如果题目带修改的话可以用树链剖分来维护,但由于没有修改用一个前缀和其实就够了. 求 $\sum_{i=l}^{r} f(a,i)$ 可以写成两个前缀相减的形式. 然后我们就要求 $\sum_{i=0}^{r} f(a,i)$. 求这个的话用倍增讨论 $a
阅读全文
摘要:看到这道题时没有什么思路,只会打暴力,而且数据范围比较有迷惑性,那基本就是分块了. 现在有两个暴力: 1.每次 $O(1)$ 更新边权,然后 $O(m)$ 暴力查询一个点的答案.2.每次将所有边排序,然后 $O(1)/O(\log n)$ 查询点权 上述两种做法中查询与更新的时间复杂度很不平衡,所以
阅读全文
摘要:只会 80pts. 最裸的暴力(40pts) 令 $f[i][j]$ 表示当前 DP 到 $i$,划分成了 $j$ 段的最小值. 时间复杂度 $O(n^2)$ 一点优化(60 ~ 80pts) 有几个测点 $a[i]$ 很小,那么可以直接开一个桶 $s[i][j]$ 表示前缀异或和为 $i$,且划分
阅读全文
摘要:首先,如果是一个 DAG 的话入度不为 0 的点肯定可以都选. 然后如果是一般图的话我们缩点,考虑对于一个强连通分量如何处理: 如果该强连通分量入度为 0 ,那么一定有一个点不能选,其他点都能选. 如果该强连通分量入读不为 0,那么肯定所有点都可以选. 由于缩完点后是一个 DAG 的形式,我们一定可
阅读全文
摘要:感觉数学期望这里始终都没太学明白. 期望在任何时候都具有线性性,即 $E(a+b)=E(a)+E(b)$,这个式子任何时候都成立. 先考虑求 $x$,$x^2$. 令 $x1[i]$ 表示 $i$ 为 $1$ 向前的极长 $1$ 的期望长度,$x2[i],x3[i]$ 为 $x^2,x^3$ 的期望
阅读全文
摘要:打表发现一个排列满足要求,当且仅当这个排列以被拆成两个 LIS(其中一个可以为空)考虑状压 DP:$f[S][i][0/1]$ 表示加进去数集 $S$,第二个 LIS 的最大值为 $i$,是否顶上界.我们拆分 $LIS$ 的方式是贪心地将较大的值分给第一个,剩下的分给第二个. 这个时间复杂度大概是
阅读全文
摘要:令 $f[i]$ 表示考虑第 $1$ ~ $i$ 位的最小代价. 由于要求最大化 $k$,所以从高位向低位贪心. 判断的话就判一下当前二进制位选 1 的代价加上 $f[i-1]$ 是否小于等于 m. 如果可以选就贪心选 1. 这道题比较容易爆精度,long long 可能会乘爆,所以判一下两个 lo
阅读全文
摘要:首先,肯定没有不合法情况(每条边的权值都赋值为 $1$ 就一定合法) 然后对于一条边 $(x,y)$ 来说,只可能有 3 种取值. 1. 取 $a[x]$ 2. 取 $a[y]$ 3. 取 $m$ 然后转化成这一步后就可以进行树形 DP 了. 令 $f[x][0],f[x][1]$ 分别表示以 $x
阅读全文
摘要:一个比较暴力的解法. 先对所有串建出广义后缀自动机提取出后缀树然后按照询问的右端点离线. 考虑插入第 $i$ 个串,那么会被 $i$ 及 $i$ 的祖先遍历到的点的表示范围会从 $[l,r] \rightarrow [l,r+1]$. 未被遍历到的点的表示范围出现了一个“断点”,则表示范围就是 $i
阅读全文
摘要:比较神仙的随机化+交互题. 测试点 $1$ ~ $5$ : 限制条件不强,可以直接点亮一条边中编号小的点 $x$,然后再枚举编号大于 $x$ 的点. 操作次数:$O(n)$ 查询次数:$O(n^2)$ 测试点 $6$ ~ $9$: 图的形态是点两两匹配. 这里有两种做法: 1. 随机化 假设当前要分
阅读全文
摘要:求:$\sum_{i=1}^{n} \sum_{j=1}^{m} [(i,j)=1][(j,k)=1]$ 这个时候可以拆前面的,也可以拆后面的. 由于后面的 $k$ 是一个定值,考虑拆解后面的部分. 得:$\sum_{d|k} \mu(d) \sum_{i=1}^{n} \sum_{j=1}^{\f
阅读全文
摘要:比较好的一道数据结构题. 对于 $i$,我们希望求出所有经过 $i$ 号点的路径所构成的树链之并. 考虑一个求解树链的并的经典做法就是 $\sum_{i=1}^{n} dep[i]-\sum_{i=2}^{n} dep[LCA(i,i-1)]$. 这里要求所有点都要按照 $dfs$ 序排好. 那么这
阅读全文
摘要:没有测试数据,但是和正解对拍了 400 多组数据都过了. 手画一下发现每个数如果变化的话只有 3 种情况:$-1,0,1$. 感性理解的话一个数变小的话对前面更优,对后面更劣. 但是我们发现不可能存在一个数使得该数变小后会导致后面的数也变小. 这是因为如果该数变小的话说明该数和前缀最小值已经构成 $
阅读全文
摘要:神仙容斥+DP可还行. code: #include <cstdio> #include <cmath> #include <vector> #include <cstring> #include <algorithm> #define N 1007 #define ll long long #de
阅读全文
摘要:比较有趣的交互题. subtask1: 由于每次调用这个函数可以返回值域中的最大值和最小值,所以可以每次查询出两个元素. 那么每次查到 $x,y$ 后就将查询区间缩小为 $[x+1,y-1]$,这样可以在规定操作次数内解决问题. subtask2: 这个 subtask 比较困难. 首先,我们发现答
阅读全文
摘要:运用到了 NOI2019 机器人那道题的技巧. 考虑对区间进行离散化,然后设当前枚举到的两个端点为 $[l,r]$. 先处理 $[l,r)$,会遇到 $\sum_{i=1}^{n} \binom{len}{i} \binom{k}{i}$ 这个式子. 这个式子可以直接 $O(1)$ 组合数算,但是我
阅读全文
摘要:NOI2019 两道插值可还行. 一个数不可能向右移动到超过后缀最大值的位置,也不可能向前移到前缀最大值之前的位置. 那么就考虑基于最大值的分治(DP) 令 $f[l][r][x]$ 表示当前区间为 $[l,r]$ 最大值为 $x$ 的方案数. 然后转移的话枚举 $k$ 为最大值出现的位置(有多个的
阅读全文
摘要:概率DP+记忆化搜索. 直接记忆化搜索感觉比较显然+简单. 直接设状态 $f[x][a][b][c]$ 表示还剩 $x$ 轮,当前牌的状态为 $(a,b,c)$ 还期望造成的伤害. 转移的话就是倒着转移:$f[x][a][b][c] \leftarrow f[x-1][.....]$. 然后边界的话
阅读全文
摘要:有一个非常显然的 DP: $f_{i,j,0/1}$ 表示当前 $DP$ 到 $i$,选了 $j$ 个 A,当前位置选的是 A/B 是否可行. 状态数为 $O(n^2)$,转移为 $O(1)$,时间复杂度为 $O(n^2)$. 这个时候就要动用人类智慧:打表. 打表后发现当 $i,0/1$ 固定的时
阅读全文

浙公网安备 33010602011771号