首页 > 代码库 > 计蒜之道 初赛第一场B 阿里天池的新任务(简单)
计蒜之道 初赛第一场B 阿里天池的新任务(简单)
阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次。
首先,定义一个序列 ww:
\displaystyle w_{i} = \begin{cases}b, & i = 0\\(w_{i-1} + a) \mod n, & i > 0\end{cases}w?i??={?b,?(w?i−1??+a)modn,???i=0?i>0??
接下来,定义长度为 nn 的 DNA 碱基序列 ss(下标从 00 开始):
\displaystyle s_{i} = \begin{cases}A , & (L \le w_{i} \le R) \land (w_{i}\ \mathrm{mod}\ 2 = 0)\\T , & (L \le w_{i} \le R) \land (w_{i}\ \mathrm{mod}\ 2 = 1)\\G , & ((w_{i} < L) \lor (w_{i} > R)) \land (w_{i}\ \mathrm{mod}\ 2 = 0)\\C , & ((w_{i} < L) \lor (w_{i} > R)) \land (w_{i}\ \mathrm{mod}\ 2 = 1)\end{cases}s?i??=?????????????????????A,?T,?G,?C,???(L≤w?i??≤R)∧(w?i?? mod 2=0)?(L≤w?i??≤R)∧(w?i?? mod 2=1)?((w?i??<L)∨(w?i??>R))∧(w?i?? mod 2=0)?((w?i??<L)∨(w?i??>R))∧(w?i