比赛地址:2023广师大训练赛4

A 新生

签到题。
判断操作次数的奇偶性,奇数次就是开启状态,偶数次就是关闭状态。
C语言代码
C++代码
Java代码
Python代码

B 杰作

签到题。
细品一下题面,不难猜出这个句子是“新作铃芽之旅”,对应的代号序列是122211。
如果不想猜,直接枚举也可以,反正最多尝试2^6=64次,从111111枚举到222222。
C语言代码
C++代码
Java代码
Python代码

C 风铃

筛选法求素数。
如果一个数字的约数个数为3,那么它必然是一个完全平方数,并且开根号之后是一个素数。
风铃上面的数字大小不超过1e9,所以使用欧拉筛或者埃氏筛提前打表,把素数求出来。
C语言代码
C++代码
Java代码
Python代码

D 萌芽

字典树。
用数组模拟一棵树,对于第二维而言,0位存储前缀个数,27位标识字符串是否存在,其余位置存储下一个后缀字母是否存在,若存在,则存放的是后缀字符串的第一维的下标。
C语言代码
C++代码
Java代码

E 之后

乘法逆元。
先列出一个分布式,然后对x * p(x) 进行求和。
一般来说,p(x) 都是以分式的形式存在,而分母是没有办法取模的,所以需要通过乘法逆元,把分母转化成等价的分子。
C语言代码
C++代码
Java代码
Python代码

F 旅行

set。
用一个set来维护区间,保证出现次数为奇数的方式是,有则删,无则加。
对1号位进行预处理,把1至min(n,k)位的数据处理进去,然后开始循环遍历,处理i-k-1和i+k,若范围越界,则不处理。
C++代码

——————————————————

感谢同学们的积极参与!