======2020HDU暑期多校第一场====== [[https://codeforces.com/contestInvitation/377448d2c4fe386ab80df2e4d6f6ea0ef6fcb105|比赛链接]] =====A.===== **upsolved by** ====题意==== ====题解==== =====B.===== **upsolved by** ====题意==== ====题解==== =====C.===== **upsolved by ** ====题意==== ====题解==== =====D.===== **solved by 2sozx Bazoka13 JJLeo** ====题意==== 统计多少个长度为 $n$ 的由小写字母构成的串 $S$ 的回文子串数最少。 ====题解==== $n\le3$ 答案为 $26^n$ ;$n>3$ 答案为 $A(26,3)$. $n\le3$ 时显然。$n>3$ 时可以构造 $abcabc\cdots$ 这样回文子串个数仅有三个,答案即为 $A(26,3)$ =====E.===== **solved by 2sozx JJLeo** ====题意==== 给定 $N,C,k$ 求 $F_0^k+F_{C}^k+F_{2C}^k+\cdots+F_{NC}^k(mod 10^9+9)$,其中 $F$ 为斐波那契数列。 $N,C\le10^{18},k\le10^5$ ====题解==== 斐波那契数列通项公式 $F_i=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^i-(\frac{1-\sqrt{5}}{2})^i)$ ,且 $5$ 是 $10^9+9$的二次剩余,因此我们可以预处理出来 $x=\frac{1}{\sqrt{5}},a=\frac{1+\sqrt{5}}{2},b=\frac{1-\sqrt{5}}{2}$,对于所求的式子可以通过二项式展开来求 $$S=x^k\sum_{i=0}^{k}(-1)^{(k-i)}C(k,i)\sum_{j=0}^{N}a^{jci}b^{jc(k-i)}$$ 对于后面的求和显然可以通过等比数列求和公式计算,因此我们只需枚举 $i=0\sim k$ 即可,注意特判公比为 $1$ 的情况。 =====F.===== **upsolved by JJLeo** ====题意==== $n$个点$m$条边的无向图,每个点有一个权值,$q$次操作,每次更改一个点权值,或询问与一个点相邻所有点权值组成集合的$\operatorname{mex}$。$(n,m,q \le 10^5)$ ====题解==== 将度数$\ge \sqrt{n}$的节点称为大节点,其它节点称作小节点。对于每个大节点开一个其对应度数大小的树状数组用于统计$\operatorname{mex}$(当然还需要一个相同大小的数组记录每个元素的出现次数)。当每个节点权值发生改变时,只需更改相邻的大节点。询问时,大节点直接用树状数组求$\operatorname{mex}$即可,小节点直接将相邻节点权值暴力排序求即可。 =====G.===== **upsolved by** ====题意==== ====题解==== =====H.===== **upsolved by ** ====题意==== ====题解==== =====I.===== **upsolved by ** ====题意==== ====题解==== =====J.===== **upsolved by ** ====题意==== ====题解==== =====K.===== **upsolved by JJLeo** ====题意==== 求字符串每个前缀的最小后缀,多组数据。$\sum|s| \le 2 \times 10^7$ ====题解==== 对字符串进行Lyndon分解,考虑在Duval算法中三个下标的含义:$i$为$s_2$开头,$j$为$s_3$开头,$k$为当前考虑和$j$匹配的位置。如果$s[k]=s[j]$,说明$s[k \cdots j]$作为Lyndon串的一个循环同构,最小后缀不会出现在其中,只需将$k$对应的最下后缀下标进行位移即可,即此时最小后缀的下标$pos[j]=pos[k]+j-k$;如果$s[k]