摘要:
Description 传送门 Solution 读完题面之后我们首先可以想到要进行质因数分解。 因为每次只能除以$prime^z$也就是说每次我们只能消除某一个质因子多出来的部分,所以对于每个质因子可以分开考虑。 消去某个质因子多出来的部分只需要把这个质因子所有出现过的在每个数中的次数都记录下来, 阅读全文
摘要:
Description 传送门 Solution 对于每种原料,如果我们能求出它们的期望出现时间,那么第$k$小的期望出现时间就是答案。因为在第$k$小的原料被收集之前,比它更早出现的原料已经被收集过了,第$k$小的原料就是第$k$个被收集到的原料。 第$k$小的原料其实就是第$n-k+1$大的原料 阅读全文
摘要:
$1.1$ \(Leafy \ Tree\) 定义 \(Leafy \ Tree\) 是一种二叉树,其每个节点要么为叶子,要么有两个儿子。其信息完全储 存在叶子上面,每个非叶节点存储的信息是其儿子的信息的合并。 例如线段树就是一种$Leafy \ Tree$,每个节点上存的信息是左右子节点的信息之和 阅读全文
摘要:
Description 传送门 Solution 首先如果士兵只能给一行或一列造成贡献的答案是$\sum_^m l_i + \sum_^n c_i$。 但是发现有的士兵可以同时给一列和一行造成贡献。 那就算出这些士兵的个数就行了。 $S$向每一行连容量为$l_i$的有向边;每一列向$T$连容量为$c 阅读全文
摘要:
Description 传送门 Solution 经典的最大权闭合子图问题。 首先$S$向每个中转站连容量为费用的有向边。 每个群体向$T$连容量为收益的有向边。 如果一个中转站的点被割了,那么相当于建立这个中转站;如果一个群体被割了相当于不选这个群体。 那么答案就是所有群体的利益减去最小割。 由于 阅读全文
摘要:
Description 传送门 Solution 一种列方程的套路。 我们先单独找出两个点的关系来考虑。 假设有$x$和$y$两个同学,向$S$连边代表选理科,向$T$连边代表选文科。设$S$向$x$连的有向边为$a$,$S$向$y$连的有向边为$b$,$x$向$T$连的有向边为$c$,$y$向$T 阅读全文
摘要:
Description 传送门 Solution 每个点只有两种选择,不是选文科就是选理科,从$S$向每个同学连容量为选文科的满意值的有向边,从每个同学向$T$连容量为选理科的满意值的有向边,那么总的满意值减去最小割就是答案。 现在考虑如何在所有相邻的同学选同一个课时增加满意值,反过来看也就是说如果 阅读全文
摘要:
Description 传送门 Solution 首先发现直接求这种三元组不打好求,那么考虑球不满足这种关系的三元组的数量。 注意到一个三元组,如果不满足这种关系,肯定分别赢了$0$,$1$,$2$场。 那么我们如果知道了每个人赢的场数$y_i$,不具有这种关系的三元组数量就是$\sum \frac 阅读全文
摘要:
Description 传送门 Solution 判断有无解可以使用并查集,如果最后地球和月球能处在同一个集合中,那么肯定可以到达,只是时间长短的问题。 因为多个飞船是同时飞行的,这样的问题不好直接处理。考虑星球的个数特别少,这时可以考虑按照时间轴建立分层图,$S$向每个时间点的地球连容量为$INF 阅读全文
摘要:
算[l, r]区间里所有子区间最小值的和。 对每个位置i向左知道第一个小于它的位置,向右找到第一个小于它的位置,算算贡献。 考虑可以用单调栈算。 但是如果一个区间里同一个最小值出现多次就挂了,所以考虑魔改一下,对于右边找到第一个小于它的点,对于左边找到第一个小于等于它的点并记录位置,这样的话就相当于 阅读全文
摘要:
$1.1.1$斐波那契循环节 \(gcd(fib_n, fib_m) = fib_{gcd(n, m)}\) 考虑设$n < m$,\(fib_n = a\),\(fib_{n + 1} = b\),那么对应的有$fib_{n + 2} = a + b$,\(fib_{n + 3} = a + 2 阅读全文
摘要:
懒得复制的一些东西 1.1 可重复组合 $n$个数中选择$r$个数,每个数可以重复选择多次。 方案数为$\binom{n + r - 1}$。 考虑若没有选择多次的条件,就是在$n$个数中选择一个子数列,满足$a_i < a_{i + 1}$,现在有了可以重复选择的条件,也就是说我们选择的子数列变成 阅读全文
摘要:
最大流 \(Dinic\) 直接上代码CwQwC。 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int INF = 999999999; co 阅读全文
摘要:
Description 传送门 Solution 因为每一行最多方的芯片数量是随着芯片总数量变化的,这样不好整,所以我们枚举最大数量,用网络流跑出此时最多放置多少芯片如果比我们枚举的最大数量是合法的,就更新答案。 建立$a_i$表示行,建立$b_i$表示列。 从$S$向$a_i$连容量为该行可放置芯 阅读全文
摘要:
Description 传送门 Solution 这题就是让求两个串的相同子串的个数。 众所周知,字符串所有的子串就是字符串所有的后缀的所有前缀。 利用这个性质我们可以将问题转化,变成求两个字符串的所有后缀的$lcp$的长度的和。 求后缀的$lcp$我们可以使用$SA$。 将两个字符串连接起来,中间 阅读全文
摘要:
Description 传送门 Solution 如果每个人每次都只是将一个大小为$1$的石子堆放到当前最大的石子堆里,那么当游戏不能玩的时候局面必定是有$n / m$个大小为$m$的石子堆和$\left [ n \mod m \neq 0 \right ]$个大小为$n \mod m$的石子堆。 阅读全文
摘要:
Description 传送门 Solution 不难想到这题用数位$dp$解决。 那么首先可以想到$dp_{i, j, num2, num3, num5, num7}$表示从高到低填了$i$位,是否卡位,乘积中的每个质因子数量是多少此时的方案数,$sum_{i, j, num2, num3, nu 阅读全文
摘要:
Description 传送门 Solution 首先注意到很多字符串有很多不同的方式进行划分,这样子为了避免不重不漏,就需要对其按特定形式划分。考虑到$AC$自动机上$fail$指针的含义是状态$x$的最长可识别后缀,那么我们就把划分方式定义为使划分的后半部分子串最长即可。 这样的话考虑在$AC$ 阅读全文
摘要:
Description 传送门 Solution 首先看到这题就想SAM对吧,然后qwaszx写了一发常数太大过不了就果断改AC自动机对吧。 考虑对$S$建立$AC$自动机,因为字符串的所有前缀的所有后缀是字符串的所有子串,而$fail$指针指的状态就是该状态的最长可识别后缀,所以在对$S$建好$A 阅读全文
摘要:
Description 传送门 Solution 首先先考虑如果限制不是区间,而是告诉你两个位置的字符相等的做法。 这样的话,我们可以把相等的位置加进一些集合里,最后答案就是$9 \times 10 ^ {num - 1}$,其中$num$代表不同的集合个数,这个可以简单地用并查集维护连通性。 那么 阅读全文