[USACO24OPEN] The 'Winning' Gene S 自用存档
1|0[USACO24OPEN] The 'Winning' Gene S
1|1题目背景
注意:本题的内存限制为 512MB,通常限制的 2 倍。
1|2题目描述
在多年举办比赛并看着 Bessie 一次又一次地获得第一名后,Farmer John 意识到这绝非偶然。他得出结论,Bessie 一定将胜利写进了 DNA,于是他开始寻找这种「胜利」基因。
他设计了一个过程来识别这个「胜利」基因的可能候选。他获取了 Bessie 的基因组,为一个长为 的字符串 ,其中 。他选择某个数对 ,其中 ,表示「胜利」基因候选的长度将为 ,并且将在一个较大的 长度子串中进行寻找。为了识别这一基因,他从 中取出所有 长度的子串,我们将称这样的子串为一个 -mer。对于一个给定的 -mer,他取出其所有长度为 的子串,将字典序最小的子串识别为胜利基因候选(如果存在并列则选择其中最左边的子串),然后将该字串在 中的起始位置 (从 开始索引)写入一个集合 。
由于他还没有选定 和 ,他想知道每对 将有多少个候选。
对于 中的每一个 ,帮助他求出满足 的 对的数量。
1|3输入格式
输入的第一行包含 ,为字符串的长度。第二行包含 ,为给定的字符串。输入保证所有字符均为大写字符,其中 ,因为奶牛遗传学远比我们的高级。
1|4输出格式
对于 中的每一个 ,输出满足 的 对的数量,每行输出一个数。
1|5样例 #1
样例输入 #1
样例输出 #1
1|6提示
样例解释 1
在这个测试用例中,输出的第三行为 是因为我们发现恰好有 对 和 存在三个「胜利」基因候选。这些候选为(其中 从 开始索引):
为了了解 如何得到这些结果,我们取出所有的 -mer
对于每一个 -mer,我们识别出字典序最小的长度为 的子串
我们取出所有这些子串在原字符串中的位置并将它们添加到集合 中,得到 。
另一方面,如果我们关注 对,我们会发现这只会得到总共 个「胜利」基因候选。如果我们取出所有的 -mer 并识别字典序最小的长度为 的子串(用 A,A' 和 A* 来区分不同的 A),我们得到
尽管 A' 和 A* 在最后 3 种情况下字典序均为最小,但最左边的子串优先,因此仅有 A' 在所有这些情况中被视为候选。这意味着 。
测试点性质
- 测试点 :。
- 测试点 :。
- 测试点 :没有额外限制。
赛时代码(66)
__EOF__

本文链接:https://www.cnblogs.com/meteor2008/p/18160960.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:_kilo-meteor,转载请注明原文链接:https://www.cnblogs.com/meteor2008/p/18160960
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具