快乐的一天从AC开始 | 20210717 | 牛客小白月赛36J

题目链接

昨晚下班回来,比赛还剩半小时,就看了过的人最少的题。

思路倒是一眼秒了,就是太久没写线段树维护字符串哈希值了,直接疯狂WA。

心路历程

一眼秒了有什么好说的,欸,这代码怎么过不了啊

思路

首先,字符串的哈希值相等就可以认为这两个字符串相等。

然后,用线段树维护字符串的哈希值,支持单点修改和区间询问。

最后,在之前的基础上,可以二分求出使得\([l_1, L]\)\([l_2, L]\)相等的最大的\(L\)以及使\([R, r_1]\)\([R, r_2]\)相等的最小的\(R\)

根据\(L, R\)就可以判断是YES还是NO。

posted @ 2021-07-17 10:56  _Backl1ght  阅读(56)  评论(0编辑  收藏  举报