
二分
道安居士
这个作者很懒,什么都没留下…
展开
-
[题解] Antisymmetry
[题解] Antisymmetry 哈希+二分粗略题意:给你一串只包含0和1的字符串,长度n≤500000n\le500000n≤500000,求满足条件的子串个数。如果子串s[i,j]s[i,j]s[i,j]满足条件,那么这个子串长度lll是偶数,并且第一个^ 最后一个=1,第二个^倒数第二个 = 1…首先想一波暴力解法,枚举中点和长度,逐个统计,时间复杂度O(n2)O(n^2)O(n2)。然后发现对于固定的中点,它的长度是可以二分的,并且利用hash,check函数也很好写。这里主要是对于反串原创 2021-05-15 23:07:06 · 271 阅读 · 0 评论 -
[题解]借教室
[题解]借教室 二分+差分区间操作,自然想到差分。如果在时刻时,操作失败,那么在时刻t之后,操作也一定会失败。寻找区间端点,自然想到二分。每次check一下该时间点是否合格,时间复杂度O(nlog(n+m))O\left( n \log( n+ m) \right)O(nlog(n+m)).#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include原创 2021-05-08 17:00:29 · 177 阅读 · 0 评论 -
[题解] 聪明的质监员
[题解] 聪明的质监员 二分+前缀和对于这种>=x求x的问题,显然一秒钟就能想到二分。∑j=liri[wj≥W]×∑j=liri[wj≥W]vj\sum_{j = l_i}^{r_i}\left [ w_j \ge W \right ] \times \sum_{j = l_i}^{r_i}\left [ w_j \ge W \right ]v_jj=li∑ri[wj≥W]×j=li∑ri[wj≥W]vj对于这个诡异的式子,可以看出用前缀和优化。对于每个w,维护第一个式原创 2021-05-08 18:06:34 · 311 阅读 · 0 评论