我会暴力!!10pts滚粗
我会转化!!记 s a i = ∑ j = 1 i a j , s b i = ∑ j = 1 i b j sa_i=\sum_{j=1}^i a_j,sb_i=\sum_{j=1}^i{b_j} sai=∑j=1iaj,sbi=∑j=1ibj
x i = max { j ∣ s a i + s b j ≤ s i } , y i = max { j ∣ s b i + s a j ≤ t i } x_i=\max\{j|sa_i+sb_j\le s_i\},y_i=\max\{j|sb_i+sa_j\le t_i\} xi=max{j∣sai+sbj≤si},yi=max{j∣sbi+saj≤ti}
c i c_i ci表示完成 I O I IOI IOI第 i i i个步骤后 J O I JOI JOI的完成数目
那么 c i ≥ c i − 1 c_i\ge c_{i-1} ci≥ci−1,答案是 ∑ i = 1 n p i [ c i ≤ x i ] + ∑ i = 1 m q i [ c y i ≥ i ] = ∑ i = 1 n p i − ∑ i = 1 n p i [ c i ≥ x i + 1 ] + ∑ i = 1 m q i [ c y i ≥ i ] \sum_{i=1}^np_i[c_i\le x_i]+\sum_{i=1}^mq_i[c_{y_i}\ge i]=\sum_{i=1}^np_i-\sum_{i=1}^np_i[c_i\ge x_i+1]+\sum_{i=1}^mq_i[c_{y_i}\ge i] ∑i=1npi[ci≤xi]+∑i=1mqi[cyi≥i]=∑i=1npi−∑i=1npi[ci≥xi+1]+∑i=1mqi[cyi≥i]
设 d p j dp_j dpj表示完成 J O I JOI JOI第 j j j个步骤的最大评分。转移的本质是对若干段后缀加一个值,然后取前缀 max \max max
发现前缀 max \max max可以暴力做。维护其差分序列,可以用 s e t set set模拟,具体 ( l , x ) (l,x) (l,x)表示 l l l位置的差分序列是 x x x。如果 x < 0 x<0 x<0那么删掉这个位置,然后让后继的差分 + x +x +x 。
复杂度 O ( n log n ) O(n\log n) O(nlogn) 。
第一步没转化出来就很尴尬
巧妙的题目。
将字符串 s s s拼成一个环,那么一定存在长度 m m m的子段满足条件。因此答案不超过 2 2 2。
证明:设 a i a_i ai表示 [ i , i + m − 1 ] [i,i+m-1] [i,i+m−1]中 1 1 1的数目。记 p p p表示原串中 1 1 1的数目, t o t = p m n tot=\frac{pm}{n} tot=npm 。注意到 ∣ a i − a i − 1 ∣ ≤ 1 |a_i-a_{i-1}|\le 1 ∣ai−ai−1∣≤1,因此我们只需要证明 min ( a i ) ≤ t o t ≤ max ( a i ) \min(a_i)\le tot\le \max(a_i) min(ai)≤tot≤max(ai) 。证明考虑 ∑ i = 1 n a i = m × p \sum_{i=1}^na_i=m\times p ∑i=1nai=m×p。
不会不会不会
我会转化!!问题转化为求生成树上 ≤ w \le w ≤w的边的数目
显然我们只关心
(
i
,
i
+
1
)
(i,i+1)
(i,i+1)层的连通性 并不显然
那么维护大小为 2 n 2n 2n的并查集。递推到下一层时,继承了上一层的连通性,并且若上一层右部图 ( u , v ) (u,v) (u,v)联通,则下一层左部图 ( u , v ) (u,v) (u,v)也联通。
看起来很玄学。并查集时设右部图为根。
具体看实现 AC Code
结论题。
我会转化!!最优区间的众数 x x x一定包含全局众数。
那么枚举另一个众数 y y y,可以前缀和优化到 O ( n a ) O(na) O(na) 。
我会优化!!
对于出现次数 ≥ n \ge \sqrt{n} ≥n的,还是前缀和优化,复杂度 O ( n n ) O(n\sqrt{n}) O(nn)。
对于出现次数 < n <\sqrt{n} <n的,枚举区间里全局众数的出现次数 i i i,判断其极大区间是否存在另一个数的出现次数不少于 i i i,复杂度 O ( n n ) O(n\sqrt{n}) O(nn)。
这样可以通过Hard Version。