JZOJ 6635. 【USACO 2017 US Open Gold】Problem 1. Bovine Genomics1

这篇博客介绍了JZOJ 6635题目的解题过程,主要涉及USACO 2017 US Open Gold的Problem 1。题目要求寻找最短的字符串区间,确保前半部分字符串的任何子串不包含在后半部分对应位置的子串中。博主分析了问题本质,指出此题与哈希前缀和问题相似,并提供了使用哈希前缀和的解决方案,时间复杂度为O(nm log2 n)。博主提到在比赛中曾考虑过哈希但因担忧而未采用,最终通过暴力方法获得部分分数。

题目大意

给你2n2n2n个长为mmm的字符串,由“A”,“T”,“G”,“C”组成,试求最短的区间使得前nnn串中的任意一串的该区间不在后nnn串的相应区间出现。n,m<=500n,m <= 500n,m<=500

分析

题目清晰,而且其实这道题的本质很像之前做过的一道名字叫泉的题目,同样是运用哈希前缀和。其实考场的时候想到了哈希前缀和,但是我不知道为什么总感觉哈希会挂就不敢打,还好暴力也有80pts80pts80pts。然后这题的思路其实很简单,就是先对每个串做一遍哈希前缀和,然后二分答案,然后在checkcheckcheck时,直接mnmnmn枚举,并用mapmapmapsetsetset协助判断前nnn个串指定位置的哈希值时候在后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值