CF1930D2 Sum over all Substrings (Hard Version)
Description
This is the hard version of the problem. The only difference between the two versions is the constraint on $ t $ and $ n $ . You can make hacks only if both versions of the problem are solved.
For a binary $ ^\dagger $ pattern $ p $ and a binary string $ q $ , both of length $ m $ , $ q $ is called $ p $ -good if for every $ i $ ( $ 1 \leq i \leq m $ ), there exist indices $ l $ and $ r $ such that:
- $ 1 \leq l \leq i \leq r \leq m $ , and
- $ p_i $ is a mode $ ^\ddagger $ of the string $ q_l q_{l+1} \ldots q_{r} $ .
For a pattern $ p $ , let $ f(p) $ be the minimum possible number of $ \mathtt{1} $ s in a $ p $ -good binary string (of the same length as the pattern).
You are given a binary string $ s $ of size $ n $ . Find $ $$$\sum_{i=1}^{n} \sum_{j=i}^{n} f(s_i s_{i+1} \ldots s_j). $ $ In other words, you need to sum the values of $ f $ over all $ \\frac{n(n+1)}{2} $ substrings of $ s $ .
$ ^\\dagger $ A binary pattern is a string that only consists of characters $ \\mathtt{0} $ and $ \\mathtt{1} $ .
$ ^\\ddagger $ Character $ c $ is a mode of string $ t $ of length $ m $ if the number of occurrences of $ c $ in $ t $ is at least $ \\lceil \\frac{m}{2} \\rceil $ . For example, $ \\mathtt{0} $ is a mode of $ \\mathtt{010} $ , $ \\mathtt{1} $ is not a mode of $ \\mathtt{010} $ , and both $ \\mathtt{0} $ and $ \\mathtt{1} $ are modes of $ \\mathtt{011010}$$$.
Input Format
N/A
Output Format
N/A
Explanation/Hint
In the first test case, the only $ \mathtt{1} $ -good string is $ \mathtt{1} $ . Thus, $ f(\mathtt{1})=1 $ .
In the second test case, $ f(\mathtt{10})=1 $ because $ \mathtt{01} $ is $ \mathtt{10} $ -good, and $ \mathtt{00} $ is not $ \mathtt{10} $ -good. Thus, the answer is $ f(\mathtt{1})+f(\mathtt{10})+f(\mathtt{0}) = 1 + 1 + 0 = 2 $ .
In the third test case, $ f $ equals to $ 0 $ for all $ 1 \leq i \leq j \leq 5 $ . Thus, the answer is $ 0 $ .