随笔分类 - 其他 - 思维题
摘要:比较神仙的推导. 求 $\sum_{n=0}^{ \infty }s(n)r^n$,其中 $s(x)$ 是一个 $m$ 次多项式,$0\leqslant r \leqslant 1$ 显然可以 $s(x)$ 每一个系数的贡献,那么就转化为: $\sum_{j=0}^{m} a_{j} \sum_{n
阅读全文
摘要:令 $f(i,j)$ 表示 $j$ 的 $i$ 阶前缀和. 那么有 $f(i,j)=\sum_{j=1}^{i} f(i-1,j)$,这个可以直接多项式快速幂. 时间复杂度是 $O(n \log^2 n)$ 或 $O(n \log n)$ ,但是常数大而且第二种不好写. 考虑计算每一个位置 $j \
阅读全文
摘要:复习一下单位根反演: $[k|n]=\frac{1}{k} \sum_{i=0}^{k-1} w_{k}^{ni}$,即 $[n \% k=0]$ 最前面那个 $\frac{1}{k}$ 不要忘记,也不要写错!!! 当 $n$ 很大,$k$ 不大的时候可以预处理出来 $w_{k}^{i}$ 然后后面
阅读全文
摘要:考场上忘了第二类斯特林数公式,过于智障,这里再重新推一遍. 首先,$S(i,j)$ 表示的意义是将 $i$ 个不同的球放入 $j$ 个相同的盒子中的方案数,且盒子不能为空. 那么有 $S(i,j)=S(i-1,j-1)+S(i-1,j) \times j$ 分别表示新开一个盒子/放入之前的盒子. 然
阅读全文
摘要:怎么想都没想出来 $\log n$ 做法,那么这道题基本就是根号分治了. 题目描述中保证 $\sum k \leqslant 10^5$,然后 $k$ 在每次询问中又是相同的,那么就考虑对 $k$ 根号分治. 先对 $s$ 建立后缀自动机,然后把倍增数组求出来. 我们设块的大小为 $B$,那么当 $
阅读全文
摘要:这道题的题意不太明确. 应该是两个序列 $a,b$ 不同,当且仅当存在位置 $i$ 使得 $a[i]$ 不等于 $b[i]$. 朴素的 DP 非常好列:$f[i][j]$ 表示选了 $i$ 个数,且值域为 $[1,j]$ 的总价值和. 那么有 $f[i][j]=f[i-1][j-1] \times
阅读全文
摘要:DAG 计数 1. 不要求联通 可以枚举 DAG 中入度为 0 的点的数量,但是会算重. 钦定入度为 0 的点的数量为 $i$ 时会将 $j$ 个入度为 0 的图算 $\binom{j}{i}$ 次. 由于我们算的是全集,容斥系数就是 $(-1)^{i-1}.$ 那么就有 : $f(n)=\sum_
阅读全文
摘要:先对完全图构建矩阵,然后将原树上的边 $(x,y)$ 在矩阵中的边权标记成 $x^1$,其余边权为 $1$. 矩阵树定理求的是所有生成树边权乘积之和,那么要是可以对含 $x$ 的矩阵求行列式的话可以直接得出答案. 但是复杂度太高,而且难写(写不了) 所以用 $n$ 个不同的整数来替换那个 $x^1$
阅读全文
摘要:这题看上去没有任何思路,不妨考虑暴力: 先求对于 $i \leqslant j$ 且 $a_{i} > a_{j}$ 的 $min(a_{i}-a_{j}).$. 对于 $a_{i} < a_{j}$ 的情况将序列中的数乘上-1再求一遍即可. 考虑将询问离线,枚举右端点,那么 $i$ 能贡献到 $a
阅读全文
摘要:比较友好的一道交互题. 想出来还是蛮开心的. 对于第一个位置先猜 $A$ 和 $B$,然后有一个合法的话猜 $A$,否则去猜 $X$,$Y$ 其中的一个. 由于题目保证首次出现的数不会在中间再次出现,所以中间的数只有 3 种情况. 如果还是用猜首位的策略去猜中间的数的话可以在 $2n$ 次询问解决该
阅读全文
摘要:手画一下发现最优策略是统一向左/向右移,那我们就让鞋子向左移. 因为一个鞋子向左移不会使右面的答案变差,而最左面没有被匹配的鞋子也迟早要和一个鞋子去匹配. 写了一个 $O(n^2)$ 的暴力,过掉了 50pts. 然后我们发现将鞋子从 $j$ 移到 $i$ 的代价是 $j-i-$ $[i,j]$ 中
阅读全文
摘要:算法一: 贪心,如果删除点 $(x,y)$ 整个图仍然联通则删掉 $(x,y)$,否则保留. 想到这里了,但是不会维护两点连通性,看了题解后发现直接令 $c[i][j]$ 表示连通块 $(i,j)$ 之间删掉了多少条边. 如果 $c[i][j]+1=\frac { num[i] \times (nu
阅读全文
摘要:如果只要求判断有没有解的话很好做:以条树边被两条非树边覆盖即可. 输出方案的话可以考虑碰到一条非树边就暴力覆盖. 如果覆盖的过程中发现一条边已经被覆盖了就输出结果. 由于一条边只能被一种非树边覆盖,所以复杂度均摊下来是 $O(n)$ 的. 然后我们就得到两条路径 $(a,b)$ 与 $(c,d)$,
阅读全文
摘要:刚开始想的贪心是先删掉儿子数量多的. 但是如果一棵树有一条特别长的链的话这个贪心就假了. 换一种贪心思路:优先删掉子树深度大的. 这种贪心题的证明也不会了,感觉没啥反例就当正确了. 以后做贪心题的时候还是要多手造几组数据,验证正确性. 希望正式考试能少出这种贪心(出的话大样例一定要足够强) code
阅读全文
摘要:这道题卡常啊 ! 出题人说 $O(n \log^2 n)$ 可过,但我写了个 $O(n \log^2 n)$ 的树剖卡了半天常数. 最暴力的做法:枚举区间,然后跑一个树形DP 来求最小匹配. 显然,因为要求匹配值最小,所以一定是能匹配就先匹配. 也就是说递归完 $x$ 的所有儿子后,$x$ 的每一个
阅读全文
摘要:二分最大值,然后考虑如何处理. 正着做很难,因为每次减掉 $p$ 后还要与 0 取 max,但是倒着做就会容易很多. 先将所有数的高度都置为 $mid$,那么就有两种操作: 1. -a[i] 2. +p 显然每次减掉 $a[i]$ 后不可以小于 0,因为如果减掉 $a[i]$ 后小于 0 的话意味着
阅读全文
摘要:今年省选考了这个技巧,感觉之前没做过类似的题的话现场挺难想出来的. 我们发现对 1 个数 +1 可以看作从低到高位的第一个 0 修改成 1,该 0 后面的 1 修改成 0. 将一个节点的所有儿子对应的数放到该节点对应的 01 trie 中进行修改的话就是将 0,1 翻转. 翻转后走 0 那边,然后递
阅读全文
摘要:求:对一个数列进行 $k$ 次冒泡排序后的结果. 先考虑数字互不相同的情况. 设 $i$ 位置前大于 $v[i]$ 的数字有 $ma[i]$ 个. 那么,如果 $k \leqslant ma[i]$,则 $i$ 位置的数就会移到 $i-k$. 否则,$i$ 位置的数就会向前移动 $ma[i]$ 次后
阅读全文
摘要:数位 DP. 题意:给定 $n \leqslant 10^{700}$,求 $1$ 到 $n$ 中每个数在各数位排序后得到的数的和. 这道题从整体上看上去貌似不太可做,不妨从每一位开始考虑. 比如说我们可以考虑第 $i$ 位为 $k$ 的数目,然后乘上 $10^i$ 后就是这一位的贡献了. 这么做的
阅读全文
摘要:现在看来这道题就简单了. 首先要知道,树形 DP 的复杂度是 $O(n^2)$ 的(通过严格控制子树大小,均摊下来一个状态只会贡献 n 次). 然后这道题要求选的个数最多为 $k$,所以复杂度就是 $O(nk)$ 的. 设 4 个状态:$f[x][y][0/1],g[x][y][0/1]$ 分别代表
阅读全文

浙公网安备 33010602011771号