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)\)

posted @ 2024-02-22 20:50  zhy_learn  阅读(4)  评论(0编辑  收藏  举报