CodeForces 记录
区的记录。
2215
vp 时看 d,e 都是 purple 所以先看 e。大概 20min 看出周期后感觉很对但是神志不清不会证!于是尝试证明 40min 倒闭。
- 【E】
比较显然枚举分界点 \(p\),然后相当于求解 \(s_i=x,s_{p-i+1}=y\) 的位置个数,由于值域大小直接 fft 即可。但是可能出现两个分界点 \(p,q\) 均满足条件,直觉告诉我们此时原序列满足特定的条件,所以可以钦定一个唯一的 \(p\)。
事实上,可以令 \(A=s[1,p],B=s[p+1,q],C=s[q,n/2]\),则左侧为 \(A+B+C\),得到右侧有 \(C+A+B=B+A+C\),那么可以令 \(b=|B|\),那么发现 \(b\) 既是周期长度又是 border,所以 \(\gcd(b,n/2-b)\) 一定是 \(s[1,n/2]\) 的周期,且是整周期。那么考虑最小整周期,发现钦定 \(p\) 属于第一个周期时一定唯一。于是枚举周期即可。 - 【F】思维好题。
令 \(S_i\) 表示 \(i\) 的集合。不难发现条件为任意 \(S_i,S_j\) 均为包含关系。则此时有 \(|S_i\cup S_j|=\max(|S_i|,|S_j|)\),且在任意时刻均有前者大于后者,于是维护总和最后 check 相等即可,复杂度线性。
但是我的想法没有以 “全局” 的角度入手,而是考虑将 \(S_i\) 按照 \(|S_i|\) 排序后暴力 check 包含,这样做到 \(\frac{q\sqrt{q}}w\) 就倒闭了。然后 tj 好像好像有优化到 \(O(n+q\log q)\) 的方法。
浙公网安备 33010602011771号