LOADING

加载过慢请开启缓存 浏览器默认开启

建议搭配 steam++ 食用更佳

『做题记录』Atcoder Beginner Contest 158

D String Formation

题面

开始有一个只包含小写字母的字符串 $S$ .

接下来执行 $Q$ 次操作 , 对于每次操作输入一个数 $T$

  • 如果 $T = 1$ , 将 $S$ 反转 .
    如果 $T = 2$ , 给定一个数 $F$ 和一个小写字符 $c$

  • 如果 $F = 1$ , 将 $c$ 放在 $S$ 的开头

  • 否则放在末尾

输出所有操作结束后的字符串 $S$ .

解题思路

水题一道 . 反转过后 , 两个操作就相当于换一下 . 只需要用一个变量来记录这个字符串是否被反转 , 被反转偶数次相当于没反转 . 注意是反转操作而不是字符串 .


E Divisible Substring

题面

给定一个质数 $P$ 和一个字符串 $S$ .

求有多少个 $S$ 的字串 $T$ 满足将 $T$ 视为十进制数后是 $P$ 的倍数 .

解题思路

该题关键在于线性求字串数量的方法 . 在大多数情况下 , 如果两个字串所对应的数字 $\bmod\ P$ 所得的余数相等 , 且一个串是另一个的末尾某一段 , 则他们相减后得到的串符合要求 . ( 2 和 5 除外 , 需特判 ) .