摘要:
题目分析: 这道题我是乱搞的,因为他说$01$串是随机的。 那么我们可以猜测能够让LCP变大的地方很少。求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右两边的单调栈。 这个事情用线段树模拟就行了。 用暴力跑一下发现果然不大,只有200w,其中很多还是废 阅读全文
摘要:
题目分析: 这题出的好! 首先问题肯定是二分图的最大独立集,如果删去某条匹配边之后独立集是否会变大。 跑出最大流之后流满的边就是匹配边。 如果一个匹配边的两个端点在一个强连通分量里,那这条边删掉之后我们就可以找到一个替代方案使得匹配不变小。 具体的,假设这两个点是x,y。因为两者之间连的是匹配边,那 阅读全文
摘要:
题目分析: 首先打个暴力求一下$10^9$以内因子最多的数的因子个数,发现只有$1344$个。 由于有$ax+by=k*(a,b)$和2017年noip的结论,所以我们可以发现对于任意多个数$a_1,a_2,a_3,...,a_n$他们能组成的数是$k$倍的最大公约数,$k$任取。我们发现如果$gc 阅读全文
摘要:
首先发现对于一个联通块有奇数个黑点,那么总体来说答案无解。这个很容易想,因为对每个边进行操作会同时改变两个点的颜色,异或值不变。 然后一个朴素的想法是写出异或方程进行高斯消元。 可以发现高斯消元的过程实际上就是合并两个点的过程,如果是一棵树的话那么答案一定是2。 对于树上每多的一条边,它在合并点的过 阅读全文
摘要:
题目分析: 思路不难想,考虑三个dp状态$f,g,d$。 $g[i]$表示有$i$个点的堆的数量 $d[i]$表示有$i$个点的情况下所有的方案数中点到根的距离和 $f[i]$表示要求的答案。 不难发现$g[i]=i!$,然后$d[i]$就枚举左子树大小,然后把左右子树单独的$d[j]$加起来,最后 阅读全文
摘要:
题目分析: 一开始以为是直接用指数型生成函数,后来发现复杂度不对,想了一下容斥的方法。 对于有$i$种颜色恰好出现$s$次的情况,利用容斥原理得到方案数为 $$\binom{m}{i}\frac{P_{is}^{n}}{(s!)^i}(\sum_{j=0}^{m-i}(-1)^j\binom{m-i 阅读全文
摘要:
题目分析: 首先跑个暴力,求一下有多少种状态,发现只有18xxxx种,然后每个状态有10的转移,所以复杂度大约是200w,然后利用进制转换的技巧求一下每个状态的十进制码就行了。 代码: 阅读全文
摘要:
题目分析: 重新定义矩阵运算,$*$等价于$+$,$+$等价于$max$。 然后倍增一下,再二分一下。 代码: 阅读全文
摘要:
题目分析: 这题的目标是求$$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}G^i $$ 这个形式很像单位根反演。 单位根反演一般用于求:$ \sum_{i \in [0,n),k \mid i} \binom{n}{i}f(x)^i $ 推理过程略,实际上也就是 阅读全文
摘要:
题目分析: 前缀和啥的模拟一下就行了。 代码: 阅读全文