USACO2023FebST2
USACO 2023 US Open Contest, Silver Problem 2. Field Day
题目大意:
给定n个01串(长度小于18),求对于每个串,与其他串的对应位不同的最大值
题解:
有部分分len<=10,得到启示,\(2^{len}·2^{len}\)非常合理
然后,就是一个非常合理的想法,把每个01串分成前后两半,计算时就只计算前一半,然后预处理后一半的代价
具体来说,就是令\(f_{s,t}\)表示对于s为后半段的串,与n个串中以t开头的,后半段的最大贡献
然后计算答案时,先枚举第i个串(后半段为s),然后枚举串的前半段t,答案就是前半段的贡献+\(f_{s,t}\)的最大值
时间复杂度:
预处理和统计答案都是\(O(n*2^9)\)