跳转至

Namomo Camp 2021 Contest

排名 当场过题数 至今过题数 总题数
9/46 6 6(7) 11

A

solved by 2sozx

题意

定义两个字符相等仅有 \((b, q), (d, p), (w, m), (n, u), (o, o), (s, s),(z, z), (x, x)\) 问序列的最长回文子串是多长。 \(|S| < 10^5\)

题解

改变 \(Manacher\) 的匹配条件即可。

B

upsolved by JJLeo

题意

给出一个积性函数 \(f(n)\)\(f(1)=1\),只考虑 \([1,n]\) 的值。

\(q\) 次询问,每次修改一个质数幂次对应的函数值,或者求该积性函数的一个前缀和 \(\sum \limits _{i=1} ^ m f(i)\),结果对 \(2^{32}\) 取模。保证第二种操作次数不超过 \(1000\)。(\(1 \le n\le 10^6\)\(1 \le q \le 10^4\))

题解

第一种操作直接改对应的值即可,如果是改的质数点处的要用树状数组修改,可以见下面第二种操作。

第二种操作使用 min_25 筛,跑一边整除分块对于 \(m\) 的整除分块,处理出 \(O(\sqrt{m})\) 个点的质数函数值的前缀和,这可以使用上述的树状数组维护。同时 \(O(\sqrt{m})\) 内质数的函数前缀和可以直接暴力处理,之后直接跑 min_25 筛第二步即可。

弱智的我第二步全用的一开始的关于 \(n\) 的整除分块,板子题没调出来,吐了。

C

upsolved by

题意

题解

D

solved by JJLeo

题意

CF1399F。

题解

原题。

E

upsolved by

题意

题解

F

solved by Bazoka13

好像忘完了啊草

题意

给一个数字串,每个划分的 \(value\) 就是所有当前划分产生的所有数字的积,计算总 \(value\) % 998244353,长度不超过 \(200000\)

题解

线性递推,,记录前 \(i\) 个总价值为 \(sum_i\).

考虑当前加入了第 \(i\) 个数字 \(x\),对于前 \(i-1\) 个字符的某个划分的 \(value\) \(P\) ,假设最后一个数字为 \(u\) ,那么此时有两种选择

  • \(u\)\(x\) 组合,则 \(value\)\(\frac{P}{u}\cdot(u*10+x)\),去括号得到 \(p*10+\frac{p}{u}\cdot x\),而对于所有的 \(\frac{p}{u}\)之和,其实就是 \(sum_{i-2}\)
  • \(x\) 不组合,\(P*x\) 即可

G

solved by 2sozx

题意

多组询问,每组询问给定一个 \(01\) 串其中包含一些 \(?\)\(?\) 可以使 \(01\) 任意一个,问是否有一种构造方式使得产生的串相邻位置不同的个数恰好为 \(k\)。如果有,求出一个字典序最小的方案。 \(k < |S| \le 10^5\)

题解

我们可以显然的 \(dp\) 出来从位置 \(i\) 开始到结尾最多与最少能够产生多少个相邻不同的位置,记为 \(dp[i][0/1]\),下面有几个易证的结论。

  • 如果 \(s[1],s[n] \not = ?\) ,那么 \(k\) 的奇偶性一定与 \(dp[1][0],dp[1][1]\) 相同。
  • 如果 \(s[1], s[n]\) 其中一个是 \(?\) ,那么 \(k\) 的奇偶性任意。
  • \(dp[1][1] \le k \le dp[1][0]\)

因此我们根据这个操作贪心即可,遇到 \(?\) 先填 \(0\) ,填不了再填 \(1\) 即可。

H

solved by JJLeo

题意

\(s(n)\) 表示 \(n\) 各数位之和,问有多少对数 \((a,b)\) 满足:

  • \(L \le a,b \le R\)
  • \(s(a)+s(b) \equiv s(a+b) \pmod d\)

(\(1 \le L \le R \le 10^{1000}\)\(2 \le d \le 9\))

题解

使用容斥定理,只需求 \(a,b \in [0,R]\) 的方案数,再减去 \(a \in [1,L-1],b\in[1,R]\)\(a \in [1,L-1],b\in[1,R]\) 的方案数,再加上 \(a,b \in [1,L-1]\) 的方案数。

\(f_{i,j,k,l,m}\) 为从高到低第 \(i\) 位,\(s(a)+s(b)-s(a+b) \bmod d = j\)\(a+b\) 前面有 \(k\) 个连续的 \(9\)\(a\) 是否贴上界,\(b\) 是否贴上界,直接进行数位 dp 即可。注意当 \(a+b\) 进位时 \(a+b\) 前面的所有 \(9\) 都会被消去。

一开始贡献写反了一个符号,边吃饭边调瞪眼了一个小时,然后标程错了,寄。

I

upsolved by

题意

题解

J

solved by JJLeo

题意

随机生成的 \(n\) 个数 \(a_i\),每次可以让一个数增加 1 或减少 1,但不能减为 0,问最少操作多少次可以让所有相邻的数都互质。(\(1 \le n \le 10^4\)\(1 \le a_i \le 10^5\))

题解

因为数据随机,每个数改变次数不会很多,直接 dp 即可。

dls 说每个数最多改 1(

K

upsolved by

题意

题解

记录

namomo疯狂namo,阴间时间开始

0min:开始了自闭的一场,MJX 发现 A 好像就是个模板,写去了,ZYF 发现 D 是个原题,直接冲了
12min:ZYF AC
15min:MJX WA,ZYF 发现 MJX 的愚蠢错误,AC,MJX 看 G 是个简单贪心,ZYF 看 H 是个裸数位DP直接开冲
78min:MJX WA2 后自信认为数据错了,直接看别的题
131min:ZYF WA,这题数据真错了,看 J 去了
162min:ZYF AC J,期间 CSK回来了冲F
182min:CSK AC F,成功击败 xudyh
??min:突然发现有人过G了,应该数据没问题,开始大力调G
216min:MJX AC,字符串末尾不是 '\0' ,老脑瘫了,错失一血
till end:ZYF 冲 B 未果,MJX C 忘清零了和一个愚蠢操作,不过不知道其余的对不对

总结

  • MJX在用 printf("%s") 时字符串末尾一定要是0
回到页面顶部