POI2015
KUR
首先设,考虑求出的范围。假设序列的第位为,则,即将区间向左循环位移,然后对所有这样的区间取交。
由于循环位移可能一个区间变成两个,因此直接取交不好做。考虑取反变成取并,然后排序即可。
但是你会发现样例过不去,观察一下发现最后个即使合法也无法造成贡献,则暴力KMP即可。时间复杂度
TRZ
牛逼题,本来还口胡了一个的诡异做法。
结论大概是左端点在前三个,或右端点在后三个。
考虑反证,也即证明左右都有三个不合法。设三个大小递减的字母依次为。
首先证明不能有,第一个位置显然不能,第二个位置如果是,则第一个位置只能是,考虑另外一边的第一个位置,如果是则全部加一,矛盾。如果是则填了的位置,矛盾。
第三个位置如果是,则前两个不能都是,而若均有也矛盾,若都为则填了的位置。
因此不能有。然后类似讨论也可以证明只有不合法,因此得证。
MOD
首先维护树上最远点对,求出表示一个点子树内最远点对,表示一个点子树外最远点对。
然后最远的显然是选一条边断掉然后把两个直径接起来,最近的是一条边断掉然后两个直径中点接起来。
用树剖不要用欧拉序,会被卡空间。
POD
和PKUSC2022D2T2差不多,对每种颜色随机哈希值,满足异或和为,则颜色在同一边可以看作异或和为,概率是。然后第二问双指针即可。
KWA
是那种需要打打表才能知道的题捏。
首先显然处的答案为,且是最后一个。打表发现最前面的答案在足够大时在处,足够大指量级。
然后考察内的所有,我们发现恰好和内能否被组成出来相同。也即如果不能被组成出来,则为,否则为。
这启发我们去证明,是由到减去某些以内的平方数得到的。
考虑归纳。已知内打表证明正确,往后的,则上述范围只能由前面的范围内加上得到,也就可以得到这个循环。
则找个循环节就很好做了,时间复杂度但是我懒写了
WYC
拆点,倍增,矩阵乘法。没了。
LAS
首先有一个观察,如果有,则一定会选择,不论是否选择,对于同理。
则先把这样的人方向定出来,注意到可能有某个人选了以后他相邻的人也会定出方向,则需要BFS。
然后对于剩下的人,选最大的一定是合法的。因为不存在别人选了还能选的情况,所以不论他前面的人选了没有,他选最大的肯定不会反悔。
时间复杂度。
CZA
首先这个问题可以转化成从小到大加入数,维护数形成的联通块的信息。
首先考虑的情况,可以发现如果一个联通块的端点不为范围内的数,那么这个端点就接不上去了,因此联通块的两端点必须都在范围内。
再考虑加上这些限制,我们无非需要知道这些端点哪个是什么,则可以将这些也加入信息中。
对于的状态,这个信息不会很多,讨论以后总共种,可以见下图。
然后写个dp转移就好了。时间复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2021-01-15 luogu P6623 [省选联考 2020 A 卷] 树
2021-01-15 CF1472D Even-Odd Game