随笔分类 - codeforces
摘要:对于一个元素,注意到其不合法当且仅当满足以下条件之一: - 自身、同行比其小、同列比其大 的元素均未选 - 自身、同行比其大、同列比其小 的元素均未选 将同行同列值相邻的元素连边,每个条件中的元素即构成一条从到的链 另外,若某行/某列元素均未选,也会产生一条从到的链 换言之,
阅读全文
摘要:考虑分治,分别求出左侧后缀和右侧前缀的直径,即需将两者两两合并: 将直径以长度和中心点(将边拆点,使长度为偶数)的方式描述,分别记为和 此时,对于和,合并后的直径长度即$\max\{d_{1},d_{2},\frac{d_{1}
阅读全文
摘要:记表示时刻时着火的格子数,则答案即 关于,即对所有点为中心、边长为的矩形求并,容斥可得$$f(i)=\sum_{S\subseteq [1,n],S\ne \empty}(-1)^{|S|
阅读全文
摘要:结论:若答案不为,则答案 对中是否存在相同字符分类讨论: 1.若中字符各不相同,显然答案为,与假设矛盾 2.若中存在相同字符,在其中两个字符旁划分,显然合法且答案 考虑依次判定答案能否为1、2、3或4,具体如
阅读全文
摘要:分析条件,不难发现仅有以下两类边: 1.若两区间严格相交(有公共段)且不相互包含,则两区间之间有双向边 2.若两区间相互包含,则小区间向大区间有单向边 对于第1类边,由于区间长度严格递增,可以通过线段树+并查集维护 具体的,1操作时在(线段树)区间上加入该点,并与在和处已加
阅读全文
摘要:将序列分块,对每一个块维护以下信息: 1.块内的最大值和区间减的懒标记 2.存在的权值(包含即可)以及对应元素的链表(首尾、长度) 对于散块修改/询问,可以利用2重构序列,即可修改/询问 对于整块修改,注意到最大值单调不降,因此在
阅读全文
摘要:若原序列众数不唯一,显然答案即为,不妨特判此类情况 结论:记为原序列的众数,则也为答案序列的众数 反证法,假设不是答案序列的众数,则不断延长答案序列直至是其众数 不难发现:这样的时刻必然存在,且此时众数不唯一,即与答案的最长性矛盾 进一步的,对答案序列的众数出现次数分类
阅读全文
摘要:将所有在二进制下展开,得到一个的01矩阵 对该矩阵做高斯消元(显然不影响结果),并要求得到如下的形式$$\left|\begin{array}{ll}1&0&0&\cdots&0&\cdots\\0&1&0&\cdots&0&\cdots\\0&0&1&\cdot
阅读全文
摘要:对于字符串,考虑(作为的子串)与有贡献的 枚举的前缀,考虑所有是后缀的,显然仅有其中最长的可能有贡献 建立ac自动机,那么即该前缀跳fail指针时第一个结束节点,可以预处理出 同时,注意到$
阅读全文
摘要:考虑所有极长的0,对其长度分类讨论—— 1.若其长度为,总是将首/尾与相邻的非0元素配对,其余元素配成对 同时,若首尾中某一个元素对应的已经出现,那么必然与另一个配对 2.若其长度为,总是配成对或将首/尾均与相邻的非0元素配对,其余元素配成对 同时,若
阅读全文