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=\dfrac{1}{A_i+1}\sum_{j=i}^{i+A_i}f_j+1 \]

我们发现等式左右两边都有 \(f_i\),考虑移项,化简后得到

\[f_i=\dfrac{A_i+1+\sum_{j=i+1}^{i+A_i}f_j}{A_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\),我们有

\[f(u,x)=\begin{cases}f(p,x)+C_{x,d_u}-C_{x,d_u-1}+\max_{v\in \text{Subtree}(q)}f(q,v)&,x\in \text{Subtree}(p)\\f(q,x)+C_{x,d_u}-C_{x,d_u-1}+\max_{v\in \text{Subtree}(p)}f(p,v)&,x\in\text{Subtree}(q)\end{cases} \]

我们维护 \(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 了,现在还没调出来 =_=

posted @ 2022-08-06 21:56  云浅知处  阅读(211)  评论(3编辑  收藏  举报