第三次周赛-膜拜大神们【题解】

来源:互联网 发布:日语jtest考试软件 编辑:程序博客网 时间:2024/04/29 06:09

整体难度思想(以CF的Div.2难度进行比对):

A.C题难度

B.A题难度

C.D题难度

D.D到E之间难度

E.B题难度


A.xgg的旅行

我们用SPFA预处理出两点间最短路,然后O(n)枚举中间点,然后找距离中间点最近的两个点就行了,注意三个点不能有相同的。


B.F神爱读书

水题。


C.蓝鲸巨打联盟

我们设定Dp【i】表示到时刻i能够打出的最高伤害,那么对于三个小技能有:

Dp【i】=Dp【i-x】+a

Dp【i】=Dp【i-y】+b

Dp【i】=Dp【i-z】+c

对于大招来讲,我们暴力做肯定是:Dp【i】=Dp【i-j】+Sum(这里Sum表示能够打出的伤害),j要在【L,R】合法范围内;

我们考虑到,每一次将i加1之后,能够转移的区间的价值变化是相同的,所以我们考虑用线段树加速优化即可,整体时间复杂度O(nlogn);

状态转移方程改写为:Dp【i】=Query(合法范围内的部分);

每一次转移之后,区间更改就行了。


D.233的转置

对于样例BABA
对A的位置构造一个多项式(x^(1)+x^(3))
即当s[i]='A'时x^(i)的系数为1
对B的位置构造一个多项式(x^(0)+x^(-2))
即当s[j]='B'时x^(-j)的系数为1
两个多项式相乘之后得到
x^(i)前面的系数就是“i-转置”的个数

这个多项式可以用FFT或者NTT求解

E.Yzi爱英语


凯撒加密,将题干每个字符都向上加3解密即可,其实就是让我们求N以内的素数的个数。




原创粉丝点击