AtCoder Beginner Contest 263 (D~G)
ABC263D Left Right Operation
首先有两种情况:
- \(a\) 中的所有数都被替换成了 \(L,R\) 中的一个,那么此时的答案就是 \(\min(L,R)\times N\)。
- \(a\) 中有剩下的数。
对于第二种情况,剩下的数必然构成一个区间 \([l,r]\)。
设前缀和 \(S_i=\sum_{j=1}^ia_j\),那么如果剩的是 \([l,r]\),价值为 \(S_r-S_{l-1}+R\times(N-r)+L\times (l-1)\)。
枚举 \(r\) 并维护前缀 \(S_{l-1}-L\times(l-1)\) 的最大值即可。复杂度 \(O(N)\)。AC Code
ABC263E Sugoroku 3
经典带自环期望 DP。设 \(f_i\) 为 \(i\to N\) 期望步数,有
我们发现等式左右两边都有 \(f_i\),考虑移项,化简后得到
用数据结构维护单点加区间求和优化 DP 即可。复杂度 \(O(N\log N)\)。AC Code
ABC263F Tournament
考虑建出一棵 \(2^{N+1}-1\) 个节点的满二叉树,然后设 \(f(u,x)\) 表示只考虑以 \(u\) 为根的子树,最终剩下来的人是 \(x\) 的最大收益。
记 \(M=2^{N+1}\le 2\times 10^5\),那么注意树高是 \(O(\log M)\),因此总的状态数实际上只有 \(O(M\log M)\) 种。
那么我们分 \(x\) 在 \(u\) 的左子树还是右子树内讨论一下,并且注意 \(x\) 此时胜利的次数必然是 \(u\) 在树上的「高度」(也就是 \(N\) 减去深度),设为 \(d\),那么此次获胜的贡献就是 \(C_{x,d}-C_{x,d-1}\)。
具体来说,设当前节点为 \(u\),左右节点分别为 \(p,q\),我们有
我们维护 \(g(u)\) 表示 \(\max_{x\in \text{Subtree}(u)}f(u,x)\) 即可 \(O(1)\) 转移。
于是这题就做完了,复杂度 \(O(N2^N)\)。AC Code
ABC263G Erasing Prime Pairs
对于 \(i\neq j\) 若 \(A_i+A_j\) 为素数我们连边 \((i,j)\),那么这张图必然是一张二分图。
证明:若图中出现奇环 \(u_1,u_2,\cdots,u_k,u_{k+1}=u_1\),考虑 \(S=\sum_{i=1}^kA_{u_i}+A_{u_{i+1}}\)。一方面 \(S=2\sum A_{u_i}\),因此 \(S\) 必然是偶数;另一方面 \(S\) 是奇数个素数之和,而由 \(A_i\) 互不相同可知加起来只能是奇素数,因此 \(S\) 同时也是个奇数,矛盾!因此图中不存在奇环,即这张图是二分图。
那么我们给二分图染个色跑带权最大匹配就行了。
然而 \(1\) 自己和自己也能消,我的做法是:在跑完最大匹配之后的残量网络上考虑 \(1\) 对应边的剩余流量 \(w\),把答案加上 \(\lfloor w/2\rfloor\) 即可。不知道为什么 wa 了,现在还没调出来 =_=