随笔分类 -  codeforces

1 2 3 4 5 ··· 7 下一页
摘要:对于一个元素,注意到其不合法当且仅当满足以下条件之一: - 自身、同行比其小、同列比其大 的元素均未选 - 自身、同行比其大、同列比其小 的元素均未选 将同行同列值相邻的元素连边,每个条件中的元素即构成一条从1n的链 另外,若某行/某列元素均未选,也会产生一条从1n的链 换言之, 阅读全文
posted @ 2023-06-11 13:33 PYWBKTDA 阅读(98) 评论(0) 推荐(0) 编辑
摘要:考虑长度为3的区间,即i[2,n),ai<ai1,ai+1ai>ai1,ai+1 不妨假设a1<a2,则其余部分即形如a1<a2>a3<...an 考虑长度为5的区间,即$\ 阅读全文
posted @ 2023-03-05 22:38 PYWBKTDA 阅读(100) 评论(0) 推荐(1) 编辑
摘要:显然每个点双独立,不妨分别考虑(特判两点一边的情况): 必要条件1:任意两点间不存在三条长度2且两两不交的简单路径 若存在,记点集分别为{ai},{bi}{ci},用[x1<x2x3]表示"方向" 根据抽屉原理,存在两条 阅读全文
posted @ 2022-07-28 10:07 PYWBKTDA 阅读(96) 评论(0) 推荐(0) 编辑
摘要:二分枚举答案,并考虑如下贪心: 从左到右依次选择区间,并维护未选区间的"右边界" 记当前位置为l,右边界r的未选区间数为cntl,r(其中r[l,n]) 取最小的r满足cntl,r=|[l,r]|,将这cntl,r个区间中右端点最小的填在 阅读全文
posted @ 2022-07-08 15:52 PYWBKTDA 阅读(112) 评论(0) 推荐(0) 编辑
摘要:考虑分治,分别求出左侧后缀和右侧前缀的直径,即需将两者两两合并: 将直径以长度和中心点(将边拆点,使长度为偶数)的方式描述,分别记为du 此时,对于(d1,u1)(d2,u2),合并后的直径长度即$\max\{d_{1},d_{2},\frac{d_{1} 阅读全文
posted @ 2022-06-29 08:38 PYWBKTDA 阅读(56) 评论(0) 推荐(0) 编辑
摘要:对于i[1,n),记xi表示经过(i,ri)的次数,根据出入度平衡,不难得到2xi[si=R]+[i=k]=rj=ixj+bj=i(xj[sj=R])+[i=1]根据这n1个方程解 阅读全文
posted @ 2022-06-10 12:04 PYWBKTDA 阅读(109) 评论(0) 推荐(0) 编辑
摘要:记f(i)表示时刻i时着火的格子数,则答案即tf(t)i=0t1f(i) 关于f(i),即对所有点为中心、边长为2i+1​的矩形求并,容斥可得$$f(i)=\sum_{S\subseteq [1,n],S\ne \empty}(-1)^{|S| 阅读全文
posted @ 2022-05-01 17:36 PYWBKTDA 阅读(128) 评论(0) 推荐(3) 编辑
摘要:结论:若答案不为1,则答案4s[l,r]中是否存在相同字符分类讨论: 1.若s[l,r]中字符各不相同,显然答案为1,与假设矛盾 2.若s[l,r]中存在相同字符,在其中两个字符旁划分,显然合法且答案4 考虑依次判定答案能否为1、2、3或4,具体如 阅读全文
posted @ 2022-04-07 21:00 PYWBKTDA 阅读(63) 评论(0) 推荐(0) 编辑
摘要:分析条件,不难发现仅有以下两类边: 1.若两区间严格相交(有公共段)且不相互包含,则两区间之间有双向边 2.若两区间相互包含,则小区间向大区间有单向边 对于第1类边,由于区间长度严格递增,可以通过线段树+并查集维护 具体的,1操作时在(线段树)区间(l,r)上加入该点,并与在lr处已加 阅读全文
posted @ 2022-03-21 18:40 PYWBKTDA 阅读(86) 评论(0) 推荐(0) 编辑
摘要:将序列分块,对每一个块维护以下信息: 1.块内的最大值max和区间减的懒标记 2.存在的权值(包含即可)以及对应元素的链表(首尾、长度) 对于散块修改/询问,可以利用2重构序列,即可o(n)修改/询问 对于整块修改,注意到最大值单调不降,因此在o(Δmax) 阅读全文
posted @ 2022-03-19 13:20 PYWBKTDA 阅读(123) 评论(0) 推荐(0) 编辑
摘要:若原序列众数不唯一,显然答案即为n,不妨特判此类情况 结论:记x为原序列的众数,则x也为答案序列的众数 反证法,假设x不是答案序列的众数,则不断延长答案序列直至x是其众数 不难发现:这样的时刻必然存在,且此时众数不唯一,即与答案的最长性矛盾 进一步的,对答案序列的众数出现次数分类 阅读全文
posted @ 2022-03-12 10:32 PYWBKTDA 阅读(48) 评论(0) 推荐(0) 编辑
摘要:性质1:对i操作后,ai+ai+1的值不变 性质2:若初始ai+1aibi,则最终ai+1ai=bi 换言之,不断合并ai+1aibi,对于合并后的每一段,根据总和和差值即可解出 在此基础上, 阅读全文
posted @ 2022-03-11 16:47 PYWBKTDA 阅读(49) 评论(0) 推荐(0) 编辑
摘要:将所有ai在二进制下展开,得到一个n×m的01矩阵 对该矩阵做高斯消元(显然不影响结果),并要求得到如下的形式$$\left|\begin{array}{ll}1&0&0&\cdots&0&\cdots\\0&1&0&\cdots&0&\cdots\\0&0&1&\cdot 阅读全文
posted @ 2022-02-27 15:22 PYWBKTDA 阅读(65) 评论(0) 推荐(0) 编辑
摘要:记cnt(x)x在二进制下1的个数,构造Ai=4cnt(i)ai,Bj=4cnt(j)bj,将两者FWT得到Ck=i|j=kAiBj 注意到i&j=0cnt(i)+cnt(j)cnt(k)阅读全文
posted @ 2022-02-22 16:19 PYWBKTDA 阅读(43) 评论(0) 推荐(0) 编辑
摘要:记l=a+b,Pi表示i是否被选入S,则有以下结论—— 结论1:若Pi=Pi+lS0={i1il,Pi=1}合法,则S也合法 反证法,若存在x,yS使得|xy|=ab,不妨假设x<y阅读全文
posted @ 2022-02-22 16:12 PYWBKTDA 阅读(52) 评论(0) 推荐(0) 编辑
摘要:对于字符串si,考虑(作为si的子串)与si有贡献的sj 枚举si的前缀t,考虑所有是t后缀的sj,显然仅有其中最长的可能有贡献 建立ac自动机,那么sj即该前缀跳fail指针时第一个结束节点,可以预处理出 同时,注意到$ 阅读全文
posted @ 2022-02-14 19:09 PYWBKTDA 阅读(54) 评论(0) 推荐(0) 编辑
摘要:记边集为E,新建点0[1,n]连边,n+1[1,n]连边,以此确定起点和终点 若初始0in,(i,i+1)E,显然答案即(n2),不妨特判此类情况 此时考虑加入(x,y)后能否合法,不难证明路径必然为以下形式 阅读全文
posted @ 2022-02-05 20:36 PYWBKTDA 阅读(63) 评论(0) 推荐(0) 编辑
摘要:为了方便,定义0区间初始左端点所在的编号为0,其余位置顺时针依次为[1,nm) 考虑对0区间顺时针旋转,记si为0区间左端点旋转到i时的答案(约定si+n=si) 性质1:若sisi1=1si+1si1(其中$0\le 阅读全文
posted @ 2022-01-15 11:52 PYWBKTDA 阅读(117) 评论(0) 推荐(0) 编辑
摘要:考虑所有极长的0,对其长度分类讨论—— 1.若其长度为2m+1,总是将首/尾与相邻的非0元素配对,其余元素配成m对 同时,若首尾中某一个元素对应的k已经出现,那么必然与另一个配对 2.若其长度为2m,总是配成m对或将首/尾均与相邻的非0元素配对,其余元素配成m1对 同时,若 阅读全文
posted @ 2022-01-14 15:21 PYWBKTDA 阅读(89) 评论(0) 推荐(0) 编辑
摘要:用二元组Ai=(cyclei,precyclei)来描述点i,则确定Ai后有解当且仅当: 设cnt(l,h)Ai=(l,h)的点数量,则l1,lcnt(l,0)且$0\le j\le h,cnt_{ 阅读全文
posted @ 2022-01-08 22:17 PYWBKTDA 阅读(48) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页
点击右上角即可分享
微信分享提示